From: Fabio G. <fab...@au...> - 2008-01-22 11:21:30
|
I'll try ASAP and keep you informed. Reagards. Alle 11:13, marted=EC 22 gennaio 2008, Carmelo AMOROSO ha scritto: > Fabio Giovagnini wrote: > > Ok, so to solve my problem of linking statically a c++ application with > > uclibc I need to move the function > > dl_iterate_phdr > > form > > libdl > > to libc > > ar Carmelo suggest. > > Is it correct? > > Yes, you should.. but I suggest you waiting for the the patched uClibc. > > I could suggest another work-around. You may patch your gcc to use the > generic > unwind implementation instead unwind-dw2-fde instead of the glibc > one unwind-dw2-fde-glibc. > Patch gcc/config/t-linux (from gcc source) changing the line > > # Use unwind-dw2-fde-glibc > LIB2ADDEH =3D $(srcdir)/unwind-dw2.c $(srcdir)/unwind-dw2-fde-glibc.c \ > > with > # Use unwind-dw2-fde > LIB2ADDEH =3D $(srcdir)/unwind-dw2.c $(srcdir)/unwind-dw2-fde.c \ > > This temporary work-around worked for me before fixing uClibc. > Generic unwind-dw2-fde doesn't use the _dl_iterate_phdr. > > Carmelo > > > Alle 10:34, marted=EC 22 gennaio 2008, Kieran Bingham ha scritto: > >> Hi Fabio, > >> > >> The SH2/SH2a does not have any support for shared librarys yet. I > >> think its something renesas are thinking about but they haven't got to > >> yet. > >> > >> This was a problem we hit while working on the board too. > >> > >>> 3) I looked for ARCH_HAS_NO_LDSO and I found in extra/Configs/Config.= sh > >>> config CONFIG_SH2 > >>> select ARCH_HAS_NO_MMU > >>> select ARCH_HAS_NO_LDSO > >>> bool "SH2" > >>> > >>> so I got the answer to my question. > >>> > >>> Well. > >>> Setting ARCH_HAS_NO_LDSO is needed by my sh27203 target or is a choice > >>> of MCP data for building the minimal sysstem? > >> > >> No, this was not a choice of MPC Data. We didn't change anything in > >> that uClibc source tree. > >> > >> Carmello: What is this `dl_iterate_phdr' - is it something that is > >> part of dynamic linking / shared libraries? > >> -- > >> Kieran > >> > >>> Thanks a lot. > >>> > >>> Ciao > >>> > >>> Alle 08:58, marted=EC 22 gennaio 2008, Carmelo AMOROSO ha scritto: > >>>> Fabio Giovagnini wrote: > >>>>> You understood properly about what I have been trying to do. Iwas > >>>>> trying to link a simple c++ application staticxally using uclibc. > >>>>> > >>>>> This is the output you are asking for. > >>>>> If it is not enogh tell me what to add more. > >>>>> > >>>>> fgiovagnini@aurio02:~/sh7203-uClinux-1.4/build> make c++1stApp > >>>>> make -f Makefile.c++1stApp > >>>>> make[1]: Entering directory > >>>>> `/home/fgiovagnini/sh7203-uClinux-1.4/build' make -e -C > >>>>> /home/fgiovagnini/sh7203-uClinux-1.4/build/../c++1stApp make[2]: > >>>>> Entering directory > >>>>> `/home/fgiovagnini/sh7203-uClinux-1.4/c++1stApp' sh-linux-g++ -m3e > >>>>> -mb -v -DGNU_SOURCE -Wall -c -o main.o main.cpp Reading specs from > >>>>> > >>>>> /home/fgiovagnini/sh7203-uClinux-1.4/build/target/lib/gcc/sh-linux/= 3. > >>>>> 4.6/ spe cs Configured with: > >>>>> /home/fgiovagnini/sh7203-uClinux-1.4/build/../gcc-3.4.6/configure > >>>>> --prefix=3D/home/fgiovagnini/sh7203-uClinux-1.4/build/target > >>>>> --target=3Dsh-linux > >>>>> --with-sysroot=3D/home/fgiovagnini/sh7203-uClinux-1.4/build/target > >>>>> --enable-languages=3Dc,c++ --disable-shared Thread model: posix > >>>>> gcc version 3.4.6 > >>>>> > >>>>> /home/fgiovagnini/sh7203-uClinux-1.4/build/target/libexec/gcc/sh-li= nu > >>>>> x/3. 4.6 /cc1plus -quiet -v -D_GNU_SOURCE -DGNU_SOURCE main.cpp > >>>>> -quiet -dumpbase main.cpp -m3e -mb -auxbase-strip main.o -Wall > >>>>> -version -o /tmp/ccik376j.s ignoring nonexistent directory > >>>>> > >>>>> "/home/fgiovagnini/sh7203-uClinux-1.4/build/target/usr/local/includ= e" > >>>>> ignoring nonexistent directory > >>>>> > >>>>> "/home/fgiovagnini/sh7203-uClinux-1.4/build/target/lib/gcc/sh-linux= /3 > >>>>> .4.6 /.. /../../../sh-linux/include" #include "..." search starts > >>>>> here: #include <...> search starts here: > >>>>> > >>>>> /home/fgiovagnini/sh7203-uClinux-1.4/build/target/lib/gcc/sh-linux/= 3. > >>>>> 4.6/ ../ ../../../include/c++/3.4.6 > >>>>> > >>>>> /home/fgiovagnini/sh7203-uClinux-1.4/build/target/lib/gcc/sh-linux/= 3. > >>>>> 4.6/ ../ ../../../include/c++/3.4.6/sh-linux > >>>>> > >>>>> /home/fgiovagnini/sh7203-uClinux-1.4/build/target/lib/gcc/sh-linux/= 3. > >>>>> 4.6/ ../ ../../../include/c++/3.4.6/backward > >>>>> > >>>>> /home/fgiovagnini/sh7203-uClinux-1.4/build/target/lib/gcc/sh-linux/= 3. > >>>>> 4.6/ inc lude > >>>>> /home/fgiovagnini/sh7203-uClinux-1.4/build/target/usr/include End of > >>>>> search list. > >>>>> GNU C++ version 3.4.6 (sh-linux) > >>>>> compiled by GNU C version 4.1.0 (SUSE Linux). > >>>>> GGC heuristics: --param ggc-min-expand=3D99 --param > >>>>> ggc-min-heapsize=3D129238 > >>>>> > >>>>> /home/fgiovagnini/sh7203-uClinux-1.4/build/target/lib/gcc/sh-linux/= 3. > >>>>> 4.6/ ../ ../../../sh-linux/bin/as -big -o main.o /tmp/ccik376j.s > >>>>> sh-linux-g++ -m3e -mb -Wl,-EB -Wl,-elf2flt=3D-s65536 -o c++1stApp > >>>>> main.o > >>>>> c++1stApp.elf2flt: In function `_Unwind_Find_FDE': > >>>>> /home/fgiovagnini/sh7203-uClinux-1.4/build/../gcc-3.4.6/gcc/unwind-= dw > >>>>> 2-fd e-gl ibc.c:291: undefined reference to `dl_iterate_phdr' > >>>>> collect2: ld returned 1 exit status > >>>>> make[2]: *** [c++1stApp] Error 1 > >>>>> make[2]: Leaving directory > >>>>> `/home/fgiovagnini/sh7203-uClinux-1.4/c++1stApp' make[1]: *** [buil= d] > >>>>> Error 2 > >>>>> make[1]: Leaving directory > >>>>> `/home/fgiovagnini/sh7203-uClinux-1.4/build' make: *** [c++1stApp] > >>>>> Error 2 > >>>>> > >>>>> Thanks a lot and best regards > >>>> > >>>> As a work-around, you may try to arrange your makefile to link > >>>> statically against libdl.a where actually _dl_iterate_phdr is define= d. > >>>> The final solution consists of moving the _dl_iterate_phdr from > >>>> libdl.a to libc.a, > >>>> but it needs some other changes. I've already have a working solution > >>>> for uClibc-nptl > >>>> for sh4, but this is still missing from the trunk. > >>>> I'm working to merge it to trunk asas. Then you need to use the late= st > >>>> uClibc. > >>>> > >>>> See if the work-around works for you. > >>>> > >>>> Carmelo > >>>> - > >>>> To unsubscribe from this list: send the line "unsubscribe linux-sh" = in > >>>> the body of a message to maj...@vg... > >>>> More majordomo info at http://vger.kernel.org/majordomo-info.html > >>> > >>> -- > >>> Fabio Giovagnini > >>> > >>> Aurion s.r.l. > >>> via degli orti 11, > >>> 40050 Funo di Argelato (BO) > >>> P.I e C.F. > >>> 00885711200 > >>> Tel. +39.335.8350919 > >>> Fax +39.051.8659009 > >>> > >>> www.aurion-tech.com > >>> > >>> account telefono VoIP skype (www.skype.com): > >>> aurion.giovagnini > >>> > >>> aurion.giovagnini > >>> - > >>> To unsubscribe from this list: send the line "unsubscribe linux-sh" in > >>> the body of a message to maj...@vg... > >>> More majordomo info at http://vger.kernel.org/majordomo-info.html > > - > To unsubscribe from this list: send the line "unsubscribe linux-sh" in > the body of a message to maj...@vg... > More majordomo info at http://vger.kernel.org/majordomo-info.html =2D-=20 =46abio Giovagnini Aurion s.r.l. via degli orti 11, 40050 Funo di Argelato (BO) P.I e C.F. 00885711200 Tel. +39.335.8350919 =46ax +39.051.8659009 www.aurion-tech.com account telefono VoIP skype (www.skype.com): aurion.giovagnini |