This is the mail archive of the crossgcc@sourceware.org mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more information.


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: making gcc relocatable->fixed


Arrr har!
It appears that the:
 --enable-shared 
flag breaks relocatability (at least on 2.16.1 and 2.15)
After removing that flag I can move it anywhere.

thx,
NZG

On Friday 23 June 2006 12:37 pm, NZG wrote:
> Testing further, it appears the gcc is relocable, but binutils is not.
> After moving the compiler (which contains sysroot and binutils)
> I can't run ar at all, it appears to  be depending on some shared library
> that it can no longer find.
>
> ~/workspace-new/SIB2.0-SDK/projects/hello$
> /home/nathan/workspace-new/SIB2.0-SDK/gcc-4.0.0-i486-D/bin/../lib/gcc/i486-
>linux/4.0.0/../../../../bin/i486-linux-ar -v
> /home/nathan/workspace-new/SIB2.0-SDK/gcc-4.0.0-i486-D/bin/../lib/gcc/i486-
>linux/4.0.0/../../../../bin/i486-linux-ar: error while loading shared
> libraries: libbfd-2.16.1.so: cannot open shared object file: No such file
> or directory
>
> I sysrooted it with
> $prefix/sysroot
> And the directory is indeed there, Is this a bug?
> Has anyone else dealt with this?
>
> thx,
> NZG
>
> On Friday 23 June 2006 9:09 am, NZG wrote:
> > Yes, that's a possiblity, but I'd rather it just work without any special
> > flags.
> >
> > NZG
> >
> > On Friday 23 June 2006 4:16 am, Niklaus wrote:
> > > well you can include -L for library path gcc main.c -L/usr/lib -lc etc
> > >
> > > On 6/23/06, NZG <ngustavson@emacinc.com> wrote:
> > > > Alright, I've got my cross-compiler working, but it's not
> > > > relocatable. Doing a little googling I ran across this thread:
> > > > http://gcc.gnu.org/ml/gcc-patches/2006-06/msg00315.html
> > > >
> > > > Which seems to indicate that gcc can find it's headers even if you
> > > > move it, provided that your specified sysroot is located at
> > > > $prefix/sysroot.
> > > >
> > > > I did that, and indeed it does seem to find it's headers, but can't
> > > > seem to find it's libraries.
> > > > Is there a solution for this?
> > > >
> > > > Success at gcc's original prefix:
> > > >
> > > > ../../gcc-3.3.6d-i486/bin/i486-linux-gcc     -c hello.c
> > > > ../../gcc-3.3.6d-i486/bin/i486-linux-gcc  *.o -Wl   -o hello -lc
> > > >
> > > > failure after relocation:
> > > >
> > > > ../../gcc-3.3.6d-i486/bin/i486-linux-gcc     -c hello.c
> > > > /home/nathan/workspace-new/SIB2.0-SDKnew/gcc-3.3.6d-i486/bin/../lib/g
> > > >cc -l ib/i486-linux/3.3.6/../../../../i486-linux/bin/as: error while
> > > > loading shared libraries: libbfd-2.15.so: cannot open shared object
> > > > file: No such file or directory
> > > > make: *** [objects] Error 1
> > > >
> > > >
> > > > scripts used to build the system:
> > > >
> > > > *******************build binutils****************************
> > > > #!/bin/sh
> > > > prefix=$HOME/workspace-new/SIB2.0-SDK/gcc-3.3.6d-i486/
> > > > mkdir $prefix
> > > > cp -r sysroot $prefix/
> > > > sysroot=$prefix/sysroot/
> > > >
> > > > mkdir -p binutils-2.15
> > > > cd binutils-2.15
> > > >
> > > > ../../binutils-2.15/configure \
> > > > --host=i686-linux \
> > > > --target=i486-linux \
> > > > --with-sysroot=$sysroot \
> > > > --prefix=$prefix \
> > > > --with-local-prefix=$sysroot \
> > > > --enable-languages=c,c++,objc \
> > > > --enable-shared \
> > > > --enable-_cxz_atexit \
> > > > --with-system-zlib \
> > > > --enable-nls \
> > > > --without-included-gettext \
> > > > --enable-clocal=gnu \
> > > > --enable-debug
> > > >
> > > > make all
> > > > make install
> > > > cd ..
> > > >
> > > > *******************build gcc (run after
> > > > binutils)****************************
> > > >
> > > > #!/bin/sh
> > > > prefix=$HOME/workspace-new/SIB2.0-SDK/gcc-3.3.6d-i486/
> > > > sysroot=$prefix/sysroot/
> > > >
> > > > export PATH=$prefix/bin:$PATH
> > > >
> > > > mkdir -p gcc-3.3.6
> > > > cd gcc-3.3.6
> > > >
> > > > ../../gcc-3.3.6/configure \
> > > > --host=i686-linux \
> > > > --target=i486-linux \
> > > > --with-sysroot=$sysroot \
> > > > --prefix=$prefix \
> > > > --with-local-prefix=$sysroot \
> > > > --enable-languages=c,c++,objc \
> > > > --enable-shared \
> > > > --enable-_cxz_atexit \
> > > > --with-system-zlib \
> > > > --enable-nls \
> > > > --without-included-gettext \
> > > > --enable-clocal=gnu \
> > > > --enable-debug
> > > >
> > > > make all
> > > > make install
> > > >
> > > > *****************************************************
> > > > thx,
> > > > NZG
> > > >
> > > > --
> > > > For unsubscribe information see http://sourceware.org/lists.html#faq
> >
> > --
> > For unsubscribe information see http://sourceware.org/lists.html#faq
>
> --
> For unsubscribe information see http://sourceware.org/lists.html#faq

--
For unsubscribe information see http://sourceware.org/lists.html#faq


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