This is the mail archive of the binutils@sourceware.org mailing list for the binutils 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]

Re: [PATCH 1/8] Add --with-system-zlib in bfd


On 03/30/2015 01:31 PM, H.J. Lu wrote:
On Mon, Mar 30, 2015 at 8:52 AM, Steve Ellcey <sellcey@imgtec.com> wrote:
On Sun, 2015-03-29 at 07:10 -0700, H.J. Lu wrote:
On Thu, Mar 26, 2015 at 8:57 AM, H.J. Lu <hjl.tools@gmail.com> wrote:
I imported zlib from GCC.  This patch adds --with-system-zlib and remove
--with-zlib in bfd.  OK for master?

I think the global binutils-gdb Makefile needs to have a dependency of
bfd on zlib.  If I build 'all-binutils' (using just the binutils-gdb
repository, not a combined tree with GCC) I get a build failure.  If I
explicitly build all-zlib before building all-binutils it works, but I
should not have to do that.


/bin/sh ./libtool --tag=CC   --mode=link gcc -W -Wall -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Werror -I/scratch/sellcey/repos/nightly/src/binutils-gdb/bfd/../zlib -g -O2 -rpath /scratch/sellcey/repos/nightly/install-mips-mti-linux-gnu/x86_64-unknown-linux-gnu/mips-mti-linux-gnu/lib -release `cat libtool-soversion`  -static-libstdc++ -static-libgcc  -o libbfd.la  archive.lo archures.lo bfd.lo bfdio.lo bfdwin.lo cache.lo coff-bfd.lo compress.lo corefile.lo format.lo hash.lo init.lo libbfd.lo linker.lo merge.lo opncls.lo reloc.lo section.lo simple.lo stab-syms.lo stabs.lo syms.lo targets.lo binary.lo ihex.lo srec.lo tekhex.lo verilog.lo `cat ofiles`  -ldl -L../zlib -lz -ldl
./libtool: line 5195: cd: ../zlib: No such file or directory
libtool: link: cannot determine absolute directory name of `../zlib'
make[3]: *** [libbfd.la] Error 1
make[3]: Leaving directory `/scratch/sellcey/repos/nightly/obj-mips-mti-linux-gnu/binutils-gdb/bfd'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/scratch/sellcey/repos/nightly/obj-mips-mti-linux-gnu/binutils-gdb/bfd'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/scratch/sellcey/repos/nightly/obj-mips-mti-linux-gnu/binutils-gdb/bfd'
make: *** [all-bfd] Error 2
Error: Make command failed, stopping build.

I will take a look.


It seems GDB's Makefile.in is also missing a few bits to make sure it includes ../zlib/libz.a in the final link step, otherwise it tries to pick the system's zlib instead of the included zlib, which may fail if you have an older libz installed.

--

/usr/bin/ld: ../bfd/libbfd.a(compress.o): undefined reference to symbol 'compressBound@@ZLIB_1.2.0' //lib/x86_64-linux-gnu/libz.so.1: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make[2]: *** [gdb] Error 1

--

We need something like libiberty in gdb/Makefile.in, but conditionalized based on the configure switches to use the system's or the include zlib.

gdb/Makefile.in:

# Where is the "-liberty" library?  Typically in ../libiberty.
LIBIBERTY = ../libiberty/libiberty.a

... and then ...

CLIBS = $(SIM) $(READLINE) $(OPCODES) $(BFD) $(INTL) $(LIBIBERTY) $(LIBDECNUMBER) \
        $(XM_CLIBS) $(NAT_CLIBS) $(GDBTKLIBS) \
        @LIBS@ @GUILE_LIBS@ @PYTHON_LIBS@ \
        $(LIBEXPAT) $(LIBLZMA) $(LIBBABELTRACE) \
        $(LIBIBERTY) $(WIN32LIBS) $(LIBGNU)


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