public inbox for glibc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug libc/7064] New: Compiling with --disable-shared doesn't work, and vm86 missing entirely from libc.a even under --enable-shared
@ 2008-12-04  0:26 nix at esperi dot org dot uk
  2008-12-04  0:28 ` [Bug libc/7064] " nix at esperi dot org dot uk
  0 siblings, 1 reply; 2+ messages in thread
From: nix at esperi dot org dot uk @ 2008-12-04  0:26 UTC (permalink / raw)
  To: glibc-bugs

(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.


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2008-12-04  0:28 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-12-04  0:26 [Bug libc/7064] New: Compiling with --disable-shared doesn't work, and vm86 missing entirely from libc.a even under --enable-shared nix at esperi dot org dot uk
2008-12-04  0:28 ` [Bug libc/7064] " nix at esperi dot org dot uk

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).