This is the mail archive of the
glibc-bugs@sourceware.org
mailing list for the glibc project.
[Bug libc/7064] New: Compiling with --disable-shared doesn't work, and vm86 missing entirely from libc.a even under --enable-shared
- From: "nix at esperi dot org dot uk" <sourceware-bugzilla at sourceware dot org>
- To: glibc-bugs at sources dot redhat dot com
- Date: 4 Dec 2008 00:25:22 -0000
- Subject: [Bug libc/7064] New: Compiling with --disable-shared doesn't work, and vm86 missing entirely from libc.a even under --enable-shared
- Reply-to: sourceware-bugzilla at sourceware dot org
(This is with glibc 2.9, which doesn't appear in the version list in bz.)
When compiling with --disable-shared, we see:
make[2]: *** No rule to make target
`/usr/packages/glibc/i686-hades/misc/vm86.o', needed by
`/usr/packages/glibc/i686-hades/misc/stamp.o'. Stop.
make[2]: Leaving directory `/usr/packages/glibc/libc-patched/misc'
make[1]: *** [misc/subdir_lib] Error 2
make[1]: Leaving directory `/usr/packages/glibc/libc-patched'
make: *** [all] Error 2
This is because vm86.c gets considered a shared-only-routine, even though no
shared library is being built.
In fact, vm86 is being omitted entirely from the static library even
when --enable-shared is active. Only 'old' routines (those which are not
default symbols) should land in that set, but not only vm86old but also vm86,
which is a default symbol, is always considered a shared-only-routine.
It looks like make-syscalls.sh is misled by the weak name for vm86 in
syscalls.list containing an @ into believing that, as a versioned symbol, it
must be non-default. We could add support for default symbols in the weak list,
but this seems overkill since only vm86 needs it: I suspect the weak name
should simply be 'vm86' and that the Versions file entry is sufficient.
A nanoscopic patch doing that is attached.
(Aside: I don't actually care about the static library normally, and only
install it for the sake of sln and prelink: but I'm trying to test the
stack-protector patches with a statically linked glibc to make sure that the
tests work when statically linked, and for that I have to make glibc build that
with --disable-shared, although my opinion of static linking is if anything
even less approving than drepper's...)
(Note: --disable-shared still doesn't work, crashing in __libc_start_main(), so
presumably some critical component of the csu machinery is only built by the
shared build: but at least this puts vm86 back in the static library when
building --enable-shared.)
--
Summary: Compiling with --disable-shared doesn't work, and vm86
missing entirely from libc.a even under --enable-shared
Product: glibc
Version: unspecified
Status: NEW
Severity: normal
Priority: P2
Component: libc
AssignedTo: drepper at redhat dot com
ReportedBy: nix at esperi dot org dot uk
CC: glibc-bugs at sources dot redhat dot com
GCC build triplet: i686-pc-linux-gnu
GCC host triplet: i686-pc-linux-gnu
GCC target triplet: i686-pc-linux-gnu
http://sourceware.org/bugzilla/show_bug.cgi?id=7064
------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.