|
|
Message-ID: <20151202233356.GS23362@port70.net>
Date: Thu, 3 Dec 2015 00:33:57 +0100
From: Szabolcs Nagy <nsz@...t70.net>
To: musl@...ts.openwall.com
Cc: Rich Felker <dalias@...c.org>
Subject: Re: Re: MUSL 1.1.10 Static linking issue
* N Jain <jain61@...il.com> [2015-12-02 16:37:33 -0500]:
> > Can you show the actual error you're getting?
>
> I am getting run time failure and the issue is in __set_thread_area.c file
>
> int __set_thread_area(void *p)
> {
> #if !__ARM_ARCH_7A__ && !__ARM_ARCH_7R__ && __ARM_ARCH < 7
> if (__hwcap & HWCAP_TLS) {
> .....
> }
> } else {
> *int ver = *(int *)0xffff0ffc;*
> * SET(gettp, kuser);*
> * SET(cas, kuser);*
> * SET(barrier, kuser);*
> * if (ver < 2) a_crash();*
> * if (ver < 3) SET(barrier, oldkuser);*
> }
> #endif
> return __syscall(0xf0005, p);
> }
>
> I used debugger to root cause and found that while generating toolchain
> __ARM_ARCH_7A option is not getting configured correctly.
> I am reaching to "else" part and getting abort at 0xffff0ffc.
>
you compiled musl for < armv7-a
(musl keeps compatibility so the binary should work
on >=armv7-a too).
the kernel did not report tls support in hwcap,
nor it had the kernel helper pages.
sounds like a broken kernel to me.
dumping the auxv and /proc/cpuinfo could be useful,
(but dont know how to display the auxv easily).
> I am trying to compile an ARM OS user application using generated toolchain
> (I am following link -
> https://github.com/GregorR/musl-cross).
>
> I can generate the toolchain successfully though not sure what
> configuration options I am missing during toolchain generation as passing
> " -mcpu=cortex-a15" to compiler is not configuring __ARM_ARCH_7A__ macro ?
>
in musl-cross you need something like
TRIPLE=arm-linux-musleabihf
GCC_BOOTSTRAP_CONFFLAGS="--with-arch=armv7-a --with-float=hard --with-fpu=vfpv3-d16"
GCC_CONFFLAGS="--with-arch=armv7-a --with-float=hard --with-fpu=vfpv3-d16"
for more gcc options see
http://gcc.gnu.org/install/configure.html
you can test the toolchain by
gcc -v
and
gcc -E -dM - </dev/null |grep ARM
shows the predefined arm macros
http://infocenter.arm.com/help/topic/com.arm.doc.ihi0053c/index.html
> I am using scripts config.sh but only configuring "ARCH=arm". I need
> toolchain for cortex-a15 but there is no option to do so ?
>
pass the -m* options in CFLAGS when configuring musl
if you want further control over code generation.
http://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.