On Fri, Feb 27, 2015 at 08:48:42AM +0000, Rüdiger, Christoph wrote:
> Am 26.02.15 um 13:23 schrieb Michael Olbrich:> On Tue, Feb 24, 2015 at 
> 09:28:29PM +0000, Rüdiger, Christoph wrote:
> >> Am 23.02.15 um 12:24 schrieb Michael Olbrich:> On Mon, Feb 23, 2015 at 
> >> 09:13:56AM +0000, Rüdiger, Christoph wrote:
> >>>>> On Mon, Feb 23, 2015 at 01:38:40AM +0200, Anders Montonen wrote:
> >>>> You need to install a lot of GNU tools from exteranl sources (homebrew,
> >>>> MacPorts, Fink), so I do not see any problem in including bash into this
> >>>> list. My bigger problem is now, that there is no GNU linker available on 
> >>>> OS
> >>>> X, so you need to use the LLVM linker which does not understand the
> >>>> -Wl,--as-needed flag. I need to dig deeper to understand since when GNU 
> >>>> gcc
> >>>> set this flag by default and what the drawback is, if we remove this flag
> >>>> from the PTXDIST_HOST_LDFLAGS.
> >>>
> >>> Hmm, "-Wl,--as-needed" should not be added implicitly and ptxdist should
> >>> only add it for target packages if PTXCONF_TARGET_LINKER_AS_NEEDED is set.
> >>
> >> You are right. I just cross-read an article and got the information wrong.
> >> According to the GNU ld man page [1], --as-needed affects the DT_NEEDED 
> >> flag
> >> only of dynamic libraries given _after_ --as-needed. As ptxdist sets it as
> >> the very last flag (see below), it is a useless flag.
> > 
> > Which ptxdist version are you using?
> 
> For this project, I need to stick with ptxdist-2013.12.0 for building OSELAS 
> toolchain 2013.12.2.
> 
> > At least for target packages we set it
> > in the right place. For me it looks like this:
> > [...]
> > wrapper: /usr/bin/icecc arm-v7a-linux-gnueabihf-gcc  -Wl,--as-needed 
> > -isystem [...]/platform-arm-hf/sysroot-target/include -isystem 
> > [...]/platform-arm-hf/sysroot-target/usr/include  -O3 
> > -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -o minigzip minigzip.o -L. libz.a 
> > -L[...]/platform-arm-hf/sysroot-target/lib 
> > -L[...]/platform-arm-hf/sysroot-target/usr/lib -Wl,-rpath-link 
> > -Wl,[...]/platform-arm-hf/sysroot-target/lib -Wl,-rpath-link 
> > -Wl,[...]/platform-arm-hf/sysroot-target/usr/lib
> > [...]
> > 
> > The wrapper script adds it before the other options.
> > 
> >>> If you start ptxdist with '-v' then all calls to the compiler and linker
> >>> are logged. Look for lines starting with 'wrapper:' in the logfile.
> >>
> >>
> >> wrapper:  gcc  -isystem 
> >> /Volumes/BlueBox/src/OSELAS.Toolchain-2013.12.2/platform-arm-cortexa8-linux-gnueabihf-gcc-4.8.3-glibc-2.18-binutils-2.24-kernel-3.12-sanitized/sysroot-host/include
> >>  -O3 -DNO_FSEEKO -DNO_STRERROR -DNO_vsnprintf -o minigzip minigzip.o -L. 
> >> libz.a 
> >> -L/Volumes/BlueBox/src/OSELAS.Toolchain-2013.12.2/platform-arm-cortexa8-linux-gnueabihf-gcc-4.8.3-glibc-2.18-binutils-2.24-kernel-3.12-sanitized/sysroot-host/lib
> >>  -Wl,-rpath 
> >> -Wl,/Volumes/BlueBox/src/OSELAS.Toolchain-2013.12.2/platform-arm-cortexa8-linux-gnueabihf-gcc-4.8.3-glibc-2.18-binutils-2.24-kernel-3.12-sanitized/sysroot-host/lib
> >>  -Wl,-rpath 
> >> -Wl,/this/is/a/long/path/to/make/host/tools/relocateable/with/chrpath/when/using/dev/packages
> >>  -Wl,--as-needed
> > 
> > I'm not sure where the "-Wl,--as-needed" is comming from. The only thing
> > that is added at the end of the command-line is PTXDIST_HOST_LDFLAGS and
> > that's just the -L / -Wl,-rpath stuff.
> 
> I've performed a simple grep and stripped out the wrapper and exec lines from 
> the logfiles. This grep searched in the installed ptxdist, the ptxdist 
> sources and the OSELAS sources, as I'm not quite sure, if it is coming from 
> ptxdist or OSELAS toolchain project. But I tend to blame ptxdist ;-)
> 
> Remember: The compilation of host-zlib within the OSELAS toolchain project 
> fails.
> 
> $ grep -r -- '-Wl,--as-needed' *
[...]
> src/OSELAS.Toolchain-2013.12.2/rules/pre/toolchain.make:PTXDIST_HOST_LDFLAGS  
>                         += -Wl,--as-needed
[...]

Here is the source of your problem. I originally added this because it some
really unnecessary dependencies for something in the toolchain.

Maybe we can only add it for the GNU ld? I'm not quite sure how to test for
this, because we need to check the linker called by the host compiler which
may not be 'ld'.

Michael

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

-- 
ptxdist mailing list
[email protected]

Reply via email to