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

Message ID CAMe9rOqO-Tk_HifdsF+BVOCjF4isTWfHJ=FsvhjgSDoPmvai0w@mail.gmail.com
State New, archived
Headers

Commit Message

H.J. Lu March 31, 2015, 6:55 p.m. UTC
  On Tue, Mar 31, 2015 at 10:18 AM, Antoine Tremblay
<antoine.tremblay@ericsson.com> wrote:
>
>
> On 03/31/2015 01:16 PM, H.J. Lu wrote:
>>
>> On Tue, Mar 31, 2015 at 10:12 AM, Antoine Tremblay
>> <antoine.tremblay@ericsson.com> wrote:
>>>>
>>>> Also doing ./configure in binutils/zlib I get :
>>>>
>>>> config.status: creating Makefile
>>>> config.status: executing default-1 commands
>>>> ./config.status: line 1190: ./../../config-ml.in: No such file or
>>>> directory
>>>>
>>>> So configure does not exit cleanly...ideas?
>>>>
>>>>
>>>
>>> I did a bit more research on this issue and I get this if I build gdb
>>> from
>>> it's source directory
>>>
>>> in binutils-gdb
>>> ./configure
>>> make
>>>
>>> make fails with : while in zlib directory
>>>
>>> configure: creating ./config.status
>>> config.status: creating Makefile
>>> config.status: executing default-1 commands
>>> ./config.status: line 1190: ./../../config-ml.in: No such file or
>>> directory
>>>
>>> However if I build out of tree in like binutils-gdb/build for example I
>>> do
>>> not get this issue.
>>>
>>> Could this be related to 92c695a14f6a5a24b177e89624c13d7dbcbf9e1f ?
>>>
>>> Subject: [PATCH 09/76] A zlib to tarball
>>>
>>> I see this snippet there
>>>
>>> -    ./configure --target=i386-pc-linux-gnu
>>> +    ./configure --target=i386-pc-linux-gnu \
>>> +       --with-target-subdir=. \
>>> +       --disable-multilib
>>>
>>> With these options I get around the configure problem only to fail in gas
>>> with :
>>> make[4]: Entering directory `/home/x/src/binutils-gdb/gas'
>>> /bin/bash ./libtool --tag=CC   --mode=link gcc -W -Wall
>>> -Wstrict-prototypes
>>> -Wmissing-prototypes -Wshadow -Werror -I./../zlib -g -O2
>>> -static-libstdc++
>>> -static-libgcc  -o as-new app.o as.o atof-generic.o compress-debug.o
>>> cond.o
>>> depend.o dwarf2dbg.o dw2gencfi.o ecoff.o ehopt.o expr.o flonum-copy.o
>>> flonum-konst.o flonum-mult.o frags.o hash.o input-file.o input-scrub.o
>>> listing.o literal.o macro.o messages.o output-file.o read.o remap.o sb.o
>>> stabs.o subsegs.o symbols.o write.o tc-i386.o obj-elf.o atof-ieee.o
>>> ../opcodes/libopcodes.la ../bfd/libbfd.la ../libiberty/libiberty.a   -ldl
>>> libtool: link: gcc -W -Wall -Wstrict-prototypes -Wmissing-prototypes
>>> -Wshadow -Werror -I./../zlib -g -O2 -static-libstdc++ -static-libgcc -o
>>> as-new app.o as.o atof-generic.o compress-debug.o cond.o depend.o
>>> dwarf2dbg.o dw2gencfi.o ecoff.o ehopt.o expr.o flonum-copy.o
>>> flonum-konst.o
>>> flonum-mult.o frags.o hash.o input-file.o input-scrub.o listing.o
>>> literal.o
>>> macro.o messages.o output-file.o read.o remap.o sb.o stabs.o subsegs.o
>>> symbols.o write.o tc-i386.o obj-elf.o atof-ieee.o
>>> ../opcodes/.libs/libopcodes.a ../bfd/.libs/libbfd.a
>>> -L/home/x/src/binutils-gdb/zlib -lz ../libiberty/libiberty.a -ldl
>>> /usr/bin/ld: cannot find -lz
>>>
>>>
>>> This is with head as :  711a72d3d6f8cd3c3f408e718ff19aa4bfd2144e
>>>
>>> Did you try to compile directly in the src tree ?
>>>
>>
>> Yes, I did.  You need to add --disable-multilib,  and maybe
>> --with-target-subdir=.
>>
>
> As I said if I add  --disable-multilib, -with-target-subdir=.
>
> I get into the gas missing zlib error above ?
>
> Also I don't think it's a good idea that gdb would require options to
> compile in it's source tree ?
>
> Is there a good reason for this ?
>

config/multi.m4 doesn't support building a library for host.
These 3 patches fix it.  I am testing config/multi.m4 in GCC.
If it passes GCC multilib build, I will check them into
binutils-gdb and submit them to GCC.
  

Patch

From 988209efe245075f3f492e00193a9c2622f0b16e Mon Sep 17 00:00:00 2001
From: "H.J. Lu" <hjl.tools@gmail.com>
Date: Tue, 31 Mar 2015 11:36:17 -0700
Subject: [PATCH 3/3] Remove --with-target-subdir=. --disable-multilib

zlib/configure is updated to properly handle in-tree build for host.

	* src-release.sh: Don't configure with  --with-target-subdir=.
	--disable-multilib.
---
 src-release.sh | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/src-release.sh b/src-release.sh
index 8229e15..9b985f0 100755
--- a/src-release.sh
+++ b/src-release.sh
@@ -83,9 +83,7 @@  do_proto_toplev()
 	<Makefile.in >tmp
     mv -f tmp Makefile.in
     #
-    ./configure --target=i386-pc-linux-gnu \
-	--with-target-subdir=. \
-	--disable-multilib
+    ./configure --target=i386-pc-linux-gnu
     $MAKE configure-host configure-target \
 	ALL_GCC="" ALL_GCC_C="" ALL_GCC_CXX="" \
 	CC_FOR_TARGET="$CC" CXX_FOR_TARGET="$CXX"
-- 
1.9.3