Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAJ4e7SU19GkpcqWgwQeDkHmWg4mwHp5YU6VD3xZLEJq2KqXQLQ@mail.gmail.com>
Date: Sat, 22 Oct 2016 22:37:46 +0200
From: Samuel Sadok <innovation-labs@...install.ch>
To: musl@...ts.openwall.com
Subject: Unable to build with --enable-shared

Hi!

I am unable to build musl with --enable-shared. Multiple issues in
unrelated projects (e.g. here: https://bugs.swift.org/browse/SR-1023)
suggest that the culprit is a change in behaviour between binutils
2.25 and 2.26.


This is what I did:

$ make clean
$ ./configure --prefix=/usr/packages/musl --target=x86_64-pc-linux-gnu
CFLAGS='-B/usr/local/bin/x86_64-pc-linux-gnu-' --enable-static
--enable-shared --disable-gcc-wrapper
$ make
[...]
x86_64-pc-linux-gnu-gcc  -D_XOPEN_SOURCE=700 -I./arch/x86_64
-I./arch/generic -Iobj/src/internal -I./src/internal -Iobj/include
-I./include  -include vis.h -B/usr/local/bin/x86_64-pc-linux-gnu-
-fPIC -c -o obj/src/process/posix_spawn.lo src/process/posix_spawn.c
[...]
x86_64-pc-linux-gnu-gcc  -D_XOPEN_SOURCE=700 -I./arch/x86_64
-I./arch/generic -Iobj/src/internal -I./src/internal -Iobj/include
-I./include  -include vis.h -B/usr/local/bin/x86_64-pc-linux-gnu-
-nostdlib -shared -Wl,-e,_dlstart -o lib/libc.so obj/src/aio/aio.lo [a
ton of objects] obj/ldso/dynlink.lo
/usr/local/bin/x86_64-pc-linux-gnu-ld: obj/src/process/posix_spawn.lo:
relocation R_X86_64_PC32 against protected symbol `execve' can not be
used when making a shared object
/usr/local/bin/x86_64-pc-linux-gnu-ld: final link failed: Bad value
collect2: error: ld returned 1 exit status
make: *** [lib/libc.so] Error 1


This is the toolchain I am using:

$ /usr/local/bin/x86_64-pc-linux-gnu-ld -v
GNU ld (GNU Binutils) 2.27

$ x86_64-pc-linux-gnu-gcc -v
Using built-in specs.
COLLECT_GCC=/usr/local/bin/x86_64-pc-linux-gnu-gcc-original
COLLECT_LTO_WRAPPER=/usr/packages/gcc-x86_64-pc-linux-gnu/libexec/gcc/x86_64-pc-linux-gnu/6.1.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /Data/Projects/Linux/gcc/fetch/gcc-6.1.0/configure
--enable-languages=all --without-headers --disable-multilib
--disable-shared --enable-static --target=x86_64-pc-linux-gnu
--with-gmp=/usr/packages/gmp --with-mpfr=/usr/packages/mpfr
--with-mpc=/usr/packages/mpc
--prefix=/usr/packages/gcc-x86_64-pc-linux-gnu : (reconfigured)
/Data/Projects/Linux/gcc/fetch/gcc-6.1.0/configure
--enable-languages=all --without-headers --disable-multilib
--disable-shared --enable-static --target=x86_64-pc-linux-gnu
--with-gmp=/usr/packages/gmp --with-mpfr=/usr/packages/mpfr
--with-mpc=/usr/packages/mpc
--prefix=/usr/packages/gcc-x86_64-pc-linux-gnu
Thread model: posix
gcc version 6.1.0 (GCC)


Can anyone confirm this issue with binutils >= 2.26? It seems strange
to me that this would not have come up yet, so maybe someone has an
idea what else might be the problem?


Samuel

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.