DMARC-Filter: OpenDMARC Filter v1.4.2 delorie.com 51K9edfE198501
Authentication-Results: delorie.com; dmarc=pass (p=none dis=none) header.from=cygwin.com
Authentication-Results: delorie.com; spf=pass smtp.mailfrom=cygwin.com
DKIM-Filter: OpenDKIM Filter v2.11.0 delorie.com 51K9edfE198501
Authentication-Results: delorie.com;
	dkim=pass (1024-bit key, unprotected) header.d=cygwin.com header.i=@cygwin.com header.a=rsa-sha256 header.s=default header.b=uWQSmJ8U
X-Recipient: archive-cygwin@delorie.com
DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 217D0385840F
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cygwin.com;
	s=default; t=1740044438;
	bh=AY0Q7xVficQ3LTR8Yikor3TGpNk+pq2Iha6sVTGNoR8=;
	h=Date:To:Subject:References:In-Reply-To:List-Id:List-Unsubscribe:
	 List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:
	 From;
	b=uWQSmJ8U9GgrAENPBa1W4ngFBn4a0/lb8xigCXhX+oBpqlFofLbqjiETk923MP64a
	 dJm9OIINHYW6+T5KsFBjR11QAl3/U6vMYkJLvCQUV/OvesgcR7RUIMS0oYrt61eoA7
	 k4pSmt1dm7BjB3CTDaPo0YHeFuE0MrI9cK1QTsO8=
X-Original-To: cygwin@cygwin.com
Delivered-To: cygwin@cygwin.com
DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 3688B3858C42
Date: Thu, 20 Feb 2025 10:39:38 +0100
To: cygwin@cygwin.com
Subject: Re: cygwin 3.6.0 vs. libbsd 0.11.7-3: -lbsd breaks setproctitle()
Message-ID: <Z7b4Wl_8HYaboYaL@calimero.vinschen.de>
Mail-Followup-To: cygwin@cygwin.com
References: <4250e737-217a-2b55-c6df-8567b283da15@t-online.de>
 <Z7XMsdPjKyaOrNIQ@calimero.vinschen.de>
 <e364ba68-bafd-c79e-abbf-d1382e6d3463@t-online.de>
 <Z7XfUHzBmGikTBqf@calimero.vinschen.de>
 <Z7X6vnVOxIz13Hue@calimero.vinschen.de>
 <Z7ZJSzkfA6AMBjtD@calimero.vinschen.de>
 <2b2f037c-eb06-1edb-bd45-e72e9498af05@t-online.de>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <2b2f037c-eb06-1edb-bd45-e72e9498af05@t-online.de>
X-BeenThere: cygwin@cygwin.com
X-Mailman-Version: 2.1.30
Precedence: list
List-Id: General Cygwin discussions and problem reports <cygwin.cygwin.com>
List-Unsubscribe: <https://cygwin.com/mailman/options/cygwin>,
 <mailto:cygwin-request@cygwin.com?subject=unsubscribe>
List-Archive: <https://cygwin.com/pipermail/cygwin/>
List-Post: <mailto:cygwin@cygwin.com>
List-Help: <mailto:cygwin-request@cygwin.com?subject=help>
List-Subscribe: <https://cygwin.com/mailman/listinfo/cygwin>,
 <mailto:cygwin-request@cygwin.com?subject=subscribe>
From: Corinna Vinschen via Cygwin <cygwin@cygwin.com>
Reply-To: cygwin@cygwin.com
Cc: Corinna Vinschen <corinna-cygwin@cygwin.com>
Content-Type: text/plain; charset="utf-8"
Errors-To: cygwin-bounces~archive-cygwin=delorie.com@cygwin.com
Sender: "Cygwin" <cygwin-bounces~archive-cygwin=delorie.com@cygwin.com>
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from base64 to 8bit by delorie.com id 51K9edfE198501

On Feb 20 08:34, Christian Franke via Cygwin wrote:
> Corinna Vinschen via Cygwin wrote:
> > On Feb 19 16:37, Corinna Vinschen via Cygwin wrote:
> > > On Feb 19 14:40, Corinna Vinschen via Cygwin wrote:
> > > > On Feb 19 14:25, Christian Franke via Cygwin wrote:
> > > > > Corinna Vinschen via Cygwin wrote:
> > > > > > So I think we rather shouldn't supply the libbsd version of
> > > > > > setproctitle_init/setproctitle anymore, as soon as cygwin 3.6.0 is
> > > > > > released.
> > > > > > 
> > > > > > What do you think?
> > > > > Makes sense. But then existing programs already using the functions from
> > > > > cygbsd-0.dll would no longer start. Perhaps keep the symbols in the DLL only
> > > > > for some time?
> > > > Sure!  The new version will just disable the header definitions but
> > > > still export the symbols for backward compat.
> > > I just realized that this isn't sufficient.  The link lib libbsd.dll.a
> > > must not export the symbol either.
> > I uploaded a 0.11.8-1 test package which fixes this issue.  I'll
> > propagate it to non-test when 3.6.0 is released.
> 
> A quick test with stress-ng was successful with both libbsd 0.11.8-1 and
> 0.12.2-1 test releases:
> - Old executable using setproctitle{,_init}() from cygbsd-0.dll still runs.
> - A rebuild uses setproctitle() from cygwin1.dll.
> - The testcases using other functions linked to cygbsd-0.dll succeed and
> setproctitle() now works:
> 
> $ procps -C stress-ng -o pid,args --sort pid
>   PID COMMAND
> 24706 ./stress-ng --heapsort 1 --mergesort 1 --radixsort 1 --monte-carlo 1
> --str 1 --wcs 1 -t 30 --verify -v -M
> 24707 stress-ng-heapsort [run]
> 24708 stress-ng-mergesort [run]
> 24709 stress-ng-radixsort [run]
> 24710 stress-ng-monte-carlo [run]  <= uses arc4random()
> 24711 stress-ng-str [run] <= uses strlcat/cpy()
> 24712 stress-ng-wcs [run] <= uses wcslcat/cpy()

Great, thanks for testing!

Yesterday I managed to get the latest 0.12.2 version of libbsd running,
which needs tweaking of the configury.  I uploaded a 0.12.2-1 test
package late at night.

However, this morning it occured to me that there are a lot more
symbols in libbsd, which could be removed as exported symbols, while
staying available in the DLL itself for backward compat.
It doesn't make much sense to use the libbsd function for newly built
applications if the functions are available in the Cygwin DLL anyway,
right?

I'll twiddle a bit with this and will come up with a 0.12.2-2 later
today.

Can you test the 0.12.2-1 in the meantime?  That would be nice.


Thanks,
Corinna

-- 
Problem reports:      https://cygwin.com/problems.html
FAQ:                  https://cygwin.com/faq/
Documentation:        https://cygwin.com/docs.html
Unsubscribe info:     https://cygwin.com/ml/#unsubscribe-simple

