Hi Hinko,
Hi List,

see my inline comments.

On lun, 2008-06-16 at 10:05 +0200, Hinko Kocevar wrote:

> Luigi 'Comio' Mantellini wrote:
> > Ciao again,
> > 
> > 
> > On ven, 2008-06-13 at 11:22 +0200, Luigi 'Comio' Mantellini wrote:
> >> Ciao,
> > 
> >> make[4]: Entering directory 
> >> `/mnt/devel/openwrt/OpenWRT.git/build_dir/toolchain-m68k_gcc4.3.1/uClibc-0.9.29'
> >> install -d 
> >> /mnt/devel/openwrt/OpenWRT.git/staging_dir/toolchain-m68k_gcc4.3.1//lib
> >> install -m 644 lib/lib*-0.9.29.so \
> >>            
> >> /mnt/devel/openwrt/OpenWRT.git/staging_dir/toolchain-m68k_gcc4.3.1//lib
> >> cd lib && tar -cf - *.so.* | tar -xf - -C 
> >> /mnt/devel/openwrt/OpenWRT.git/staging_dir/toolchain-m68k_gcc4.3.1//lib
> >> tar: error while loading shared libraries: libpthread.so.0: ELF file data 
> >> encoding not little-endian
> >> tar: error while loading shared libraries: libpthread.so.0: ELF file data 
> >> encoding not little-endian
> 
> You've seem to remove some some mandatory path in system library search - if 
> your had LD_LIBRARY_PATH set you've might need to do:
> export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/your/lib
> in contrast to
> export LD_LIBRARY_PATH=/path/to/your/lib
> 


I added the following into $(TOP)/rule.mk (and I don't like what I
do...):

export LD_LIBRARY_PATH=$(TOP)/staging_dir/host/lib:$(LD_LIBRARY_PATH)


Anyway I decided to change approach: install directly on the host
environment the GMP and MPFR library need to GCC4.3 compiler... OpenWRT
should make some check to recognize these libraries:


        ifneq ($(CONFIG_GCC_VERSION_4_3_X),)
        define Require/gmp
                echo 'int main(int argc, char **argv) { return 
((__GNU_MP_VERSION*1000+__GNU_MP_VERSION_MINOR)*1000+__GNU_MP_VERSION_PATCHLEVEL)>=004001000?0:1;
 }' |
                        gcc -include gmp.h -x c -o $(TMP_DIR)/gmptest.o -lgmp -
        endef
        
        $(eval $(call Require,gmp, \ 
                Please install lib gmp >= 4.1.0 \ 
        ))
        
        define Require/mpfr
                echo 'int main(int argc, char **argv) { return 
(MPFR_VERSION>=MPFR_VERSION_NUM(2,3,0))?0:1; }' | \ 
                        gcc -include mpfr.h -x c -o $(TMP_DIR)/a.out -lmpfr -
        endef
        
        $(eval $(call Require,mpfr, \ 
                Please install lib mpfr >= 2.3.0 \ 
        ))
        
        endif


Unfortunately, this code cannot be performed by prereq-build.mk because
we don't know if we need gcc4.3 or not.


> > 
> > My self-answer: This error is caused by the "LD_LIBRARY_PATH" that I
> > defined into rule.mk. At this point I need to resolve an issue: GCC4.3
> > requires gmp and mpfr libraries. I added the makefile under the
> > toolchain directory in order to create the needed libraries (libgmp.so
> > and libmpfr.so). I  placed these libraries into the
> > staging_dir/host/lib/ directory... but (cross)gcc doesn't start because
> > this directory is not in the ld path... I thought to solve this issue
> > using the LD_LIBRARY_PATH=$(TOP)/staging_dir/host/lib/ ... but this
> > creates the error in tar application....
> > 
> > Now, with LD_LIBRARY_PATH env. variable removed, I'm compiling the
> > gcc-final... but I will need it when the (cross)gcc is invoked.
> > 
> > question: Where can I place the host libraries (__NOT TARGET__) in order
> > to be visible to cross-compiler (and in general, to crosstools)?
> 
> Maybe all you need to do is correctly supply the full path to the 
> includes/libraries via C(PP)FLAGS/LDFLAGS in the makefile, or on the command 
> line instead of using LD_LIBRARY_PATH. Another approach would be to 
> statically build/link the tar app inside the openWRT SDK and use the 
> LD_LIBRARY_PATH after all.
> 
> HTH,
> 
> Hinko
> 


I would patch OpenWRT as little as possible, of course. The solution
should be to link statically libgmp and libmpfr to gcc cross-compiler...
but How can I say this to the gcc configure?

Furthermore I chosen to avoid to compile the mpfr and gmp into the
OpenWRT environment... Now I have an error during the gcc-final
regarding ctype_base<char>... 

Thanks and Best regards,

luigi


Industrie Dial Face S.p.A.
Luigi Mantellini
R&D - Software
Industrie Dial Face S.p.A.
Via Canzo, 4 
20068 Peschiera Borromeo (MI), Italy
Tel.:   +39 02 5167 2813
Fax:    +39 02 5167 2459
E-mail: [EMAIL PROTECTED]
GPG fingerprint: 3DD1 7B71 FBDF 6376
1B4A
                 B003 175F E979 907E
1650

<<attachment: idf_logo.gif>>

_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
http://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel

Reply via email to