--- Begin Message ---
Package: libc0.2
Version: n/a
Severity: normal
Hi,
might also be a bug in the Hurd, who knows. Needs more debugging, but as
you see in the date, it got almost lost in mailing list archive, so I record
it here.
Thanks,
Marcus
----- Forwarded message from Neal H Walfield <neal@cs.uml.edu> -----
Envelope-to: marcus@localhost
Delivery-date: Thu, 16 Aug 2001 19:50:41 +0200
From: Neal H Walfield <neal@cs.uml.edu>
To: bug-hurd <bug-hurd@gnu.org>
Subject: NSS and static binaries
Organization: University of Massachusetts at Lowell
X-QOTD: Education is the ability to listen to almost anything without
losing your temper or your self confidence.
-- R. Frost
X-BeenThere: bug-hurd@gnu.org
X-Mailman-Version: 2.0.5
List-Help: <mailto:bug-hurd-request@gnu.org?subject=help>
List-Post: <mailto:bug-hurd@gnu.org>
List-Subscribe: <http://mail.gnu.org/mailman/listinfo/bug-hurd>,
<mailto:bug-hurd-request@gnu.org?subject=subscribe>
List-Id: Bug reports for the GNU Hurd <bug-hurd.gnu.org>
List-Unsubscribe: <http://mail.gnu.org/mailman/listinfo/bug-hurd>,
<mailto:bug-hurd-request@gnu.org?subject=unsubscribe>
List-Archive: <http://mail.gnu.org/pipermail/bug-hurd/>
X-UIDL: #1R!!^0+!!2h+"!@JP!!
When using NSS functionality in a static binary, NSS still uses shared
libraries. This is explained in the libc faq, section 2.22.
Unfortunentally, this does not work on the Hurd. Here is a small test
case using initgroups:
initgroups.c:
#define _GNU_SOURCE
#include <grp.h>
#include <stdio.h>
#include <errno.h>
#include <error.h>
int
main (int argc, char *argv[])
{
int err;
err = initgroups ("neal", -1);
if (err == -1)
error (1, errno, "initgroups");
printf ("Success.\n");
return 0;
}
Here is the output on GNU/Linux with glibc 2.2.3-9:
neal@bassanio:~/initgroups (0)$ make
cc -Wall -g -static -o initgroups-static initgroups.c
cc -Wall -g -o initgroups initgroups.c
neal@bassanio:~/initgroups (0)$ ./initgroups
./initgroups: initgroups: Operation not permitted
neal@bassanio:~/initgroups (1)$ ./initgroups-static
./initgroups-static: initgroups: Operation not permitted
neal@bassanio:~/initgroups (1)$
and on the GNU/Hurd with glibc 2.2.3-9:
neal@desdemona:~/initgroups (0)$ make
cc -Wall -g -static -o initgroups-static initgroups.c
cc -Wall -g -o initgroups initgroups.c
neal@desdemona:~/initgroups (0)$ ./initgroups
./initgroups: initgroups: Operation not permitted
neal@desdemona:~/initgroups (1)$ ./initgroups-static
Segmentation fault
neal@desdemona:~/initgroups (139)$ gdb initgroups-static
GNU gdb 5.0
[ snip ]
This GDB was configured as "i386-unknown-gnu0.2"...
(gdb) run
Starting program: /home/neal/initgroups/initgroups-static
Program received signal SIGSEGV, Segmentation fault.
0x10bc301 in ?? ()
(gdb) bt
#0 0x10bc301 in ?? ()
#1 0x10bc478 in ?? ()
#2 0x10bca36 in ?? ()
#3 0x10b470a in ?? ()
#4 0x10bbb6c in ?? ()
#5 0x1072ee6 in ?? ()
#6 0x1072ac0 in ?? ()
#7 0x8086853 in call_init ()
#8 0x808698d in _dl_init ()
#9 0x80774d4 in dl_open_worker ()
#10 0x80762bf in _dl_catch_error ()
#11 0x80775dd in _dl_open ()
#12 0x8051f18 in do_dlopen ()
#13 0x80762bf in _dl_catch_error ()
#14 0x8051ed3 in dlerror_run ()
#15 0x8051f88 in __libc_dlopen ()
#16 0x805150d in __nss_lookup_function ()
#17 0x804ef73 in initgroups ()
#18 0x8048225 in main (argc=1, argv=0x1000ea4) at initgroups.c:12
#19 0x80486a0 in __libc_start_main ()
(gdb) quit
The program is running. Exit anyway? (y or n) y
neal@desdemona:~/initgroups (0)$ exit
----- End forwarded message -----
--
`Rhubarb is no Egyptian god.' Debian http://www.debian.org brinkmd@debian.org
Marcus Brinkmann GNU http://www.gnu.org marcus@gnu.org
Marcus.Brinkmann@ruhr-uni-bochum.de
http://www.marcus-brinkmann.de
--- End Message ---
--- Begin Message ---
- To: 127980-done@bugs.debian.org
- Subject: Re: Bug#127980: [neal@cs.uml.edu: NSS and static binaries]
- From: Samuel Thibault <sthibault@debian.org>
- Date: Tue, 19 Aug 2014 23:46:52 +0200
- Message-id: <20140819214652.GA2452@type.youpi.perso.aquilenet.fr>
- In-reply-to: <20020106034719.GD812@212.23.136.22>
- References: <20020106034719.GD812@212.23.136.22>
Marcus Brinkmann, le Sun 06 Jan 2002 04:47:19 +0100, a écrit :
> When using NSS functionality in a static binary, NSS still uses shared
> libraries. This is explained in the libc faq, section 2.22.
>
> Unfortunentally, this does not work on the Hurd. Here is a small test
> case using initgroups:
This was fixed at some point, it doesn't happen any more.
Samuel
--- End Message ---