Re: qemu coldfire SIGILL with pthread app

Greg Ungerer <[email protected]> Wed, 8 Jun 2016 21:38:58 +1000
Newsgroups gmane.linux.uclinux.devel
Message-ID <[email protected]>
Hi Waldemar,

Sorry for the slow response. The uclinux-dev email list seems
very unreliable at the moment. I never got your last response,
but I can see it in the archives:

http://mailman.uclinux.org/pipermail/uclinux-dev/2016-May/052747.html


> Waldemar Brodkorb wbx at openadk.org
> Fri May 27 15:35:58 EDT 2016
>
>     Previous message: [uClinux-dev] qemu coldfire SIGILL with pthread app
>     Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
>
> Hi Greg,
> Greg Ungerer wrote,
>
>> Hi Waldemar,
>>
>> On 26/05/16 22:05, Waldemar Brodkorb wrote:
>> > Greg Ungerer wrote,
>> >> On 20/05/16 14:20, Waldemar Brodkorb wrote:
>> >>> Greg Ungerer wrote,
>> >>>> On 16/05/16 19:54, Waldemar Brodkorb wrote:
>> >>>>> I compile and test the thread test app from here on
>> >>>>> Qemu coldfire emulation:
>> >>>>> http://debug.openadk.org/arm-pthreads/hello.c
>> >>>>>
>> >>>>> Sometimes it works, sometimes I get SIGILL.
>> >>>>> Tested with buildroot and qemu_m68k_mcf5208_defconfig. It uses gcc
>> >>>>> 4.9.3 and binutils 2.25.1. The kernel is 4.5.3 including the signal
>> >>>>> handler patch. uClibc-ng 1.0.14 is used.
>> >>>>>
>> >>>>> Any idea?
>> >>>>
>> >>>> Do you get the SIGILL when running without strace?
>> >>>
>> >>> Yes.
>> >>>
>> >>>> How often does it work, and not work?
>> >>>
>> >>> ~ # ill=0; for i in $(seq 1 50); do /test; if [ $? -ne 0 ]; then ill=$(($ill+1)) ;fi; sleep 2; done
>> >>> ~ # echo $ill
>> >>> 30
>> >>>
>> >>> It is not always the same.
>> >>
>> >> Ok. I expect I would see it pretty easily though if I
>> >> run hello 100 times for example.
>> >>
>> >>
>> >>>> I have a setup with a gcc-5.3/binutils-2.25.1 toolchain building
>> >>>> linux-4.6 and using uClibc-ng-1.0.14 and using your hello.c test
>> >>>> app and I don't see any SIGILLs. Ran it quite a few times but
>> >>>> didn't see any.
>> >>>
>> >>> Hmm. I now changed to gcc 5.3.0 and see the same problem.
>> >>> Need to try linux-4.6. What version of Qemu are you using?
>> >>> I recently updated to 2.6.0.
>> >>
>> >> I was using an older 2.3.50. But I just pulled down 2.6 and
>> >> tried again. I still don't see any SIGILLs.
>> >>
>> >> Looking at your strace dump and mine it puzzles me that the initial
>> >> startup is a little different. On my dump the first output
>> >> write() is the 3rd system call. On your traces it is much later.
>> >>
>> >> Can you send me your hello (and hello.gdb) binaries?
>> >
>> > They are here:
>> > http://debug.openadk.org/coldfire/
>>
>> Thanks. I can reproduce it with that binary easily.
>>
>>
>> > Are you using linuxthreads.old or linuxthreads.new?
>> > I use old, and new will be removed in the next uClibc-ng release.
>>
>> I am using the old linux threads. I have attached my uClibc-ng
>> config so you can see what I am using.
>>
>> I can see that your hello binary is a good bit smaller than mine.
>> The code generated looks quite different too. Do you compile apps
>> and libs with -msep-data?
>
> That is the exact reason. I used FLAT without -msep-data.
> When I use -msep-data I get no SIGILL.
>
> Any idea why simple FLAT breaks the binaries?

No, not sure why. I would have thought it should work.

Regards
Greg

_______________________________________________
uClinux-dev mailing list
[email protected]
http://mailman.uclinux.org/mailman/listinfo/uclinux-dev
This message was resent by [email protected]
To unsubscribe see:
http://mailman.uclinux.org/mailman/options/uclinux-dev