[Gc] Re[2]: [libatomic_ops] On Linux,
ARMv5tel does not have all functions available (#3)
Ivan Maidanski
ivmai at mail.ru
Wed Mar 7 01:01:19 PST 2012
Hi Niels,
07 03 2012, 12:32 Niels de Vos <reply+i-3489920-a6264862991435ec2c55a219c5150534b26c055f-460469 at reply.github.com>:
> Hi Ivan,
>
> unfortunately does not seem to be sufficient to define AO_REQUIRE_CAS on ARMv5tel. The [Fedora Bug 799153](https://bugzilla.redhat.com/show_bug.cgi?id=799153) contains a little test-case that can not be compiled without defining AO_USE_PTHREAD_DEFS.
>
> Do you think this could be a bug in the path when AO_REQUIRE_CAS is defined?
What do you mean by "path"?
The test case is:
// test.c
#include <atomic_ops.h> // I'd rather use here: #include "atomic_ops.h>"
#include <sys/types.h>
int main(void)
{
volatile size_t i = 1234; // I'd rather use AO_t here
return AO_fetch_and_add1(&i);
}
I tried both current release, current master branch and libatomic_ops-7_2alpha6.
First try without AO_REQUIRE_CAS:
~/arm-2010.09/bin/arm-none-linux-gnueabi-gcc --sysroot ~/arm-2010.09/sysroot -I src/ -march=armv5te test.c src/atomic_ops.c
/tmp/cca1N8ZK.o: In function `main':
test.c:(.text+0x1c): undefined reference to `AO_fetch_and_add1'
collect2: ld returned 1 exit status
Second try:
~/arm-2010.09/bin/arm-none-linux-gnueabi-gcc --sysroot ~/arm-2010.09/sysroot -I src/ -DAO_REQUIRE_CAS -march=armv5te test.c src/atomic_ops.c
Success.
So, I can't reproduce Fedora Bug 799153 (i.e. you don't need AO_USE_PTHREAD_DEFS here)
Regards.
>
> Thanks,
> Niels
>
> ---
> Reply to this email directly or view it on GitHub:
> https://github.com/ivmai/libatomic_ops/issues/3#issuecomment-4364247
>
More information about the Gc
mailing list