This is the mail archive of the glibc-bugs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug libc/7064] New: Compiling with --disable-shared doesn't work, and vm86 missing entirely from libc.a even under --enable-shared


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]