On Tue, Mar 17, 2009 at 2:07 AM, Khem Raj <[email protected]> wrote: > On Mon, Mar 16, 2009 at 1:34 AM, Groleo Marius <[email protected]> wrote: >> On Fri, Mar 13, 2009 at 8:39 PM, Khem Raj <[email protected]> wrote: >>> On (13/03/09 18:40), Groleo Marius wrote: >>>> Hi list, >>>> I'm trying my luck compiling uClibc on a m68k Coldfire 5475 processor. >>>> I modified the Makefiles so the sources gets compiled with the -fPIC >>>> flag but I still get the error: >>>> >>>> /mnt/workspace/trunk/targets/m68k-unknown-linux-uclibc/build/build-libc/ldso/ldso/m68k/elfinterp.c:326: >>>> relocation truncated to fit: R_68K_PC16 against symbol `_dl_skip_args' >>>> defined in .bss section in ldso/ldso/ld-uClibc_so.a(ldso.oS). >>>> >>>> Does any one has any ideea ? >>> >>> can you try the attached patch >> I patched successfully but now I get other errors. below you have a >> snip of the log. >> >> [ALL ] ./libpthread/linuxthreads.old/sysdeps/m68k/pt-machine.h:33: >> warning: no previous prototype for 'testandset' >> [ALL ] libpthread/linuxthreads.old/manager.c: In function >> '__pthread_manager_event': >> [ALL ] libpthread/linuxthreads.old/manager.c:252: warning: >> function might be possible candidate for attribute 'noreturn' >> [ALL ] libpthread/linuxthreads.old/manager.c: In function >> 'pthread_handle_create': >> [ALL ] libpthread/linuxthreads.old/manager.c:582: warning: >> declaration of 'mask' shadows a parameter >> [ALL ] libpthread/linuxthreads.old/manager.c:472: warning: >> shadowed declaration is here >> [ALL ] m68k-unknown-linux-uclibc-gcc -c >> libpthread/linuxthreads.old/mutex.c -o >> libpthread/linuxthreads.old/mutex.os -include ./include/libc-symbols.h >> -Wall -pipe -Wstrict-prototypes -fno-strict-aliasing -Wnested-externs >> -Wshadow -Wmissing-noreturn -Wmissing-format-attribute -Wformat=2 >> -Wmissing-prototypes -Wmissing-declarations -Wnonnull -Wundef >> -fno-stack-protector -fno-builtin -nostdinc -I./include -I. >> -I./libc/sysdeps/linux/m68k -fno-asm >> -I/home/mariusn/workspace/trunk/_src/linux-2.6.26/include/asm-m68k >> -I/home/mariusn/workspace/trunk/_src/uClibc-0.9.29/libc/sysdeps/linux/common/ >> -I/home/mariusn/workspace/trunk/_src/uClibc-0.9.29/libc/sysdeps/linux/ >> -DUCLIBC_INTERNAL -std=gnu99 -O0 -g3 >> -I./libpthread/linuxthreads.old/sysdeps/unix/sysv/linux/m68k >> -I./libpthread/linuxthreads.old/sysdeps/m68k >> -I./libpthread/linuxthreads.old/sysdeps/unix/sysv/linux >> -I./libpthread/linuxthreads.old/sysdeps/pthread >> -I./libpthread/linuxthreads.old -I./libpthread >> -I/home/mariusn/cross-compiled/m68k-unknown-linux-uclibc/m68k-unknown-linux-uclibc/sys-root/usr/include/ >> -I/mnt/workspace/trunk/targets/m68k-unknown-linux-uclibc/build/gcc-core-static/lib/gcc/m68k-unknown-linux-uclibc/4.3.2//include-fixed >> -I/mnt/workspace/trunk/targets/m68k-unknown-linux-uclibc/build/gcc-core-static/lib/gcc/m68k-unknown-linux-uclibc/4.3.2/include >> -DMALLOC_DEBUGGING -DHEAP_DEBUGGING -fpic -DNOT_IN_libc >> -DIS_IN_libpthread -MT libpthread/linuxthreads.old/mutex.os -MD -MP >> -MF libpthread/linuxthreads.old/.mutex.os.dep >> [ALL ] In file included from libpthread/linuxthreads.old/internals.h:30, >> [ALL ] from libpthread/linuxthreads.old/mutex.c:22: >> [ALL ] ./libpthread/linuxthreads.old/sysdeps/m68k/pt-machine.h:33: >> warning: no previous prototype for 'testandset' >> [ALL ] {standard input}: Assembler messages: >> [ALL ] {standard input}:10013: Error: operands mismatch -- >> statement `sne -1(%fp)' ignored >> [ALL ] {standard input}:10120: Error: operands mismatch -- >> statement `sne -1(%fp)' ignored >> [ERROR] make[1]: *** [libpthread/linuxthreads.old/mutex.os] Error 1 >> > > May be someone who has got pthreads working with coldfire can pitch in. > Check the manuals and see if it the instruction sne -1(%fp) has the > right syntax for whatever addressing mode it is trying to address. > You might have more problems due to missing atomic operations in coldfire. >
I checked [1] and the sne instruction is used ok. In my previously attached patch I included your fix for the PC-relative addressing issue and the fix for the sne operand error. The problem is that the output operand (%1) is used before the input operand (%0) in the extended asm construct. After reading [2] I added the earlyclobber operand(&). I got it to compile/link but I will test it after I deploy the binaries on the board. [1] - http://www.freescale.com/files/dsp/doc/ref_manual/CFPRM.pd [2] - http://www.ibiblio.org/gferg/ldp/GCC-Inline-Assembly-HOWTO.html#s5 -- Regards, Groleo! _______________________________________________ uClibc mailing list [email protected] http://lists.busybox.net/mailman/listinfo/uclibc
