On Fri, Feb 27, 2015 at 09:24:20AM +0000, Rüdiger, Christoph wrote:
> > 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-
> > cortex
> > > >> a8-linux-gnueabihf-gcc-4.8.3-glibc-2.18-binutils-2.24-kernel-3.12-s
> > > >> anitized/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-
> > cort
> > > >> exa8-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-
> > co
> > > >> rtexa8-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/chrpa
> > > >> th/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'.
> 
> The LLVM linker is also called 'ld'. We need to check for the version string,
> which contains either "LLVM" or "GNU". If somebody can point me to a few
> places where to add this check, I can write something in the beginning of
> next week.

But it might not be the 'ld' in $PATH. So probably something like this is
necessary:
`gcc -print-prog-name=ld` -v | grep -q GNU

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