17.10.2012 19:24, Yves Blusseau пишет:
> Le 17 oct. 2012 à 17:27, Andrew a écrit :
>
>> 17.10.2012 18:01, Yves Blusseau пишет:
>>> Le 17/10/2012 15:50, Andrew a écrit :
>>>> 17.10.2012 15:07, Yves Blusseau пишет:
>>>>> Le 17/10/2012 13:08, Andrew a écrit :
>>>>>> I think that this patch will not break anything for 32bit toolchain.
>>>>> It will because if you used -m32 it will look for lib in /usr/lib32 :(
>>>>>
>>>>> So we only need to patch the source only for 64bits arch.
>>>>>
>>>>> Yves
>>>>>
>>>> It'll look in lib32 only if gcc is compiled for 64bit support - as said
>>>> in gcc/config/config.h comments. Other files are included for 64bit
>>>> target system.
>>>> If it fails for pure 32bit toolchain, we can try to leave config.h
>>>> untouched.
>>> It's seems to work. Can compile 32bit toolchain with the pure64 patch
>>> applied:
>>>
>>> ./i486-unknown-linux-uclibc-gcc -print-multi-os-directory
>>> .
>>> ./i486-unknown-linux-uclibc-gcc -m64 -print-multi-os-directory
>>> .
>>> ./i486-unknown-linux-uclibc-gcc -m32 -print-multi-os-directory
>>> .
>>> ./i486-unknown-linux-uclibc-gcc -m32 -print-multi-lib
>>> .
>>>
>>> But i need to understand how it can works :D.
>>> I don't see any gcc/config/config.h.
>>> Can you give me some tips to understand how it's works andrew ?
>>>
>>> Regards,
>>> Yves
>> Look at the staging/<arch>/toolchain/gcc-4.6.3/gcc/config/config.h -
>> here it is. It's modified by patch.
> Sorry andrew but i don't find the file:
> in source i have gcc-4.6.3/gcc/config but no config.h
> in toolchain 
> toolchain/i486-unknown-linux-uclibc/lib/gcc/i486-unknown-linux-uclibc/4.6.3 
> but no config.h
> in staging nothing about gcc
>
> The file you speak about is perhaps:
> source/<toolchain>/toolchain/gcc-4.6.3/gcc/config/i386/linux64.h or
> source/<toolchain>/toolchain/gcc-4.6.3/gcc/config/linux.h
>   
It seems like gcc/config/linux.h is created after configure.
>> And for x86 and other 32bit toolchains config.h is only file
>> that touches anything.
> Don't understand sorry.
Changes in gcc/config/linux.h affect all archs; changes in *64.h affects 
only 64bit compiler builds.
>> There is still one question - about linker lib: it is
>> /lib/ld64-uClibc.so.0 for 64bit and /lib/ld-uClibc.so.0 for 32bit; it's
>> symlink for uClibc library. We can provide into initrd both links, and
>> IMHO it'll be enough good - as far as we shouldn't mix 32bit and 64bit
>> packages in one box.
> We can also patch source/<toolchain>/toolchain/gcc-4.6.3/gcc/config/linux.h
>
> #define UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
> #define UCLIBC_DYNAMIC_LINKER32 "/lib32/ld-uClibc.so.0"
> #define UCLIBC_DYNAMIC_LINKER64 "/lib/ld64-uClibc.so.0"
>
> into
>
> #define UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
> #define UCLIBC_DYNAMIC_LINKER32 UCLIBC_DYNAMIC_LINKER
> #define UCLIBC_DYNAMIC_LINKER64 UCLIBC_DYNAMIC_LINKER
>
> And in uClibc patch source/<toolchain>/toolchain/uClibc-0.9.33.2/Rules.mak
>
> ifneq ($(findstring  $(TARGET_ARCH) , hppa64 ia64 mips64 powerpc64 s390x 
> sparc64 x86_64 ),)
> UCLIBC_LDSO_NAME := ld64-uClibc
> ARCH_NATIVE_BIT := 64
> else
> UCLIBC_LDSO_NAME := ld-uClibc
> ARCH_NATIVE_BIT := 32
> endif
>
> into
> ifneq ($(findstring  $(TARGET_ARCH) , hppa64 ia64 mips64 powerpc64 s390x 
> sparc64 x86_64 ),)
> UCLIBC_LDSO_NAME := ld-uClibc
> ARCH_NATIVE_BIT := 64
> else
> UCLIBC_LDSO_NAME := ld-uClibc
> ARCH_NATIVE_BIT := 32
> endif
>
>
> Yves
>
Right. This is a hack, but it should work.  IMHO providing dual symlinks 
will be cleaner solution - but there is a place for discussion.

------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_sfd2d_oct

_______________________________________________
leaf-devel mailing list
leaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/leaf-devel

Reply via email to