Re: [Gc] [PATCH] Implement the basic atomic primitives for the tilegx/tilepro cpus.
Chris Metcalf <cmetcalf-VPRAkNaXOzVWk0Htik3J/[email protected]> Tue, 15 Nov 2016 03:27:34 +0000
| Newsgroups | gmane.comp.programming.garbage-collection.boehmgc |
|---|---|
| Message-ID | <[email protected]> |
This is the first time I've seen a warning tagged onto a Mellanox email that I have sent. Not sure what's going on there. > On Nov 14, 2016, at 7:27 PM, Chris Metcalf <cmetcalf-VPRAkNaXOzVWk0Htik3J/[email protected]> wrote: > > This sender failed our fraud detection checks and may not be who they appear to be. Learn about spoofing at http://aka.ms/LearnAboutSpoofing > > Yes, it reports all 4 tests passed on tilegx as of the current git tip. > >> On 11/7/2016 5:34 AM, Ivan Maidanski wrote: >> >> Hello Chris, >> >> Does code in libatomic_ops master branch work? >> >> Regards, >> Ivan >> >> -- >> >> Wed, 02 Nov 2016, 08:07 +03:00 from Helmut Grohne <[email protected]>: >> >> Hi Chris, >> On Thu, May 12, 2016 at 01:49:08AM +0300, Ivan Maidanski wrote: >> > I've committed these 2 patches (with small modifications) to master: >> > * https://github.com/ivmai/bdwgc/commit/1240658b92c0827ace6f9ac52b3425070eed948f >> > * https://github.com/ivmai/libatomic_ops/commit/04a286421802a503b58d804d0d673dd5a28c9e9b >> The version of libatomic_ops in Debian has finally been updated to 7.4.4 >> and cherry-picks 04a86642180 (https://tracker.debian.org/news/808756). >> Of course, I went a head and tried to build it, but that fails >> (https://jenkins.debian.net/job/rebootstrap_tilegx_gcc6_supported/10/console): >> | make[3]: Entering directory '/tmp/buildd/libatomic-ops/libatomic-ops-7.4.4/src' >> | /bin/bash ../libtool --tag=CC --mode=compile tilegx-linux-gnu-gcc -DHAVE_CONFIG_H -I../src -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -Wall -Wextra -g -O2 -fdebug-prefix-map=/tmp/buildd/libatomic-ops/libatomic-ops-7.4.4=. -fstack-protector-strong -Wformat -Werror=format-security -c -o atomic_ops.lo atomic_ops.c >> | libtool: compile: tilegx-linux-gnu-gcc -DHAVE_CONFIG_H -I../src -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -Wall -Wextra -g -O2 -fdebug-prefix-map=/tmp/buildd/libatomic-ops/libatomic-ops-7.4.4=. -fstack-protector-strong -Wformat -Werror=format-security -c atomic_ops.c -o atomic_ops.o >> | In file included from atomic_ops/sysdeps/gcc/tile.h:19:0, >> | from atomic_ops.h:295, >> | from atomic_ops.c:47: >> | atomic_ops/sysdeps/gcc/generic.h:65:13: error: unknown type name 'AO_TS_VAL_t' >> | AO_INLINE AO_TS_VAL_t >> | ^~~~~~~~~~~ >> | atomic_ops/sysdeps/gcc/generic.h:66:28: error: unknown type name 'AO_TS_t' >> | AO_test_and_set(volatile AO_TS_t *addr) >> | ^~~~~~~ >> | atomic_ops/sysdeps/gcc/generic.h: In function 'AO_test_and_set': >> | atomic_ops/sysdeps/gcc/generic.h:68:13: error: 'AO_TS_VAL_t' undeclared (first use in this function) >> | return (AO_TS_VAL_t)__atomic_test_and_set(addr, __ATOMIC_RELAXED); >> | ^~~~~~~~~~~ >> | atomic_ops/sysdeps/gcc/generic.h:68:13: note: each undeclared identifier is reported only once for each function it appears in >> | atomic_ops/sysdeps/gcc/generic.h:68:25: error: expected ';' before '__atomic_test_and_set' >> | return (AO_TS_VAL_t)__atomic_test_and_set(addr, __ATOMIC_RELAXED); >> | ^~~~~~~~~~~~~~~~~~~~~ >> | atomic_ops/sysdeps/gcc/generic.h:66:37: warning: unused parameter 'addr' [-Wunused-parameter] >> | AO_test_and_set(volatile AO_TS_t *addr) >> | ^~~~ >> | atomic_ops/sysdeps/gcc/generic.h: At top level: >> | atomic_ops/sysdeps/gcc/generic.h:72:13: error: unknown type name 'AO_TS_VAL_t' >> | AO_INLINE AO_TS_VAL_t >> | ^~~~~~~~~~~ >> | atomic_ops/sysdeps/gcc/generic.h:73:36: error: unknown type name 'AO_TS_t' >> | AO_test_and_set_acquire(volatile AO_TS_t *addr) >> | ^~~~~~~ >> | atomic_ops/sysdeps/gcc/generic.h: In function 'AO_test_and_set_acquire': >> | atomic_ops/sysdeps/gcc/generic.h:75:13: error: 'AO_TS_VAL_t' undeclared (first use in this function) >> | return (AO_TS_VAL_t)__atomic_test_and_set(addr, __ATOMIC_ACQUIRE); >> | ^~~~~~~~~~~ >> | atomic_ops/sysdeps/gcc/generic.h:75:25: error: expected ';' before '__atomic_test_and_set' >> | return (AO_TS_VAL_t)__atomic_test_and_set(addr, __ATOMIC_ACQUIRE); >> | ^~~~~~~~~~~~~~~~~~~~~ >> | atomic_ops/sysdeps/gcc/generic.h:73:45: warning: unused parameter 'addr' [-Wunused-parameter] >> | AO_test_and_set_acquire(volatile AO_TS_t *addr) >> | ^~~~ >> | atomic_ops/sysdeps/gcc/generic.h: At top level: >> | atomic_ops/sysdeps/gcc/generic.h:79:13: error: unknown type name 'AO_TS_VAL_t' >> | AO_INLINE AO_TS_VAL_t >> | ^~~~~~~~~~~ >> | atomic_ops/sysdeps/gcc/generic.h:80:36: error: unknown type name 'AO_TS_t' >> | AO_test_and_set_release(volatile AO_TS_t *addr) >> | ^~~~~~~ >> | atomic_ops/sysdeps/gcc/generic.h: In function 'AO_test_and_set_release': >> | atomic_ops/sysdeps/gcc/generic.h:82:13: error: 'AO_TS_VAL_t' undeclared (first use in this function) >> | return (AO_TS_VAL_t)__atomic_test_and_set(addr, __ATOMIC_RELEASE); >> | ^~~~~~~~~~~ >> | atomic_ops/sysdeps/gcc/generic.h:82:25: error: expected ';' before '__atomic_test_and_set' >> | return (AO_TS_VAL_t)__atomic_test_and_set(addr, __ATOMIC_RELEASE); >> | ^~~~~~~~~~~~~~~~~~~~~ >> | atomic_ops/sysdeps/gcc/generic.h:80:45: warning: unused parameter 'addr' [-Wunused-parameter] >> | AO_test_and_set_release(volatile AO_TS_t *addr) >> | ^~~~ >> | atomic_ops/sysdeps/gcc/generic.h: At top level: >> | atomic_ops/sysdeps/gcc/generic.h:86:13: error: unknown type name 'AO_TS_VAL_t' >> | AO_INLINE AO_TS_VAL_t >> | ^~~~~~~~~~~ >> | atomic_ops/sysdeps/gcc/generic.h:87:33: error: unknown type name 'AO_TS_t' >> | AO_test_and_set_full(volatile AO_TS_t *addr) >> | ^~~~~~~ >> | atomic_ops/sysdeps/gcc/generic.h: In function 'AO_test_and_set_full': >> | atomic_ops/sysdeps/gcc/generic.h:89:13: error: 'AO_TS_VAL_t' undeclared (first use in this function) >> | return (AO_TS_VAL_t)__atomic_test_and_set(addr, __ATOMIC_SEQ_CST); >> | ^~~~~~~~~~~ >> | atomic_ops/sysdeps/gcc/generic.h:89:25: error: expected ';' before '__atomic_test_and_set' >> | return (AO_TS_VAL_t)__atomic_test_and_set(addr, __ATOMIC_SEQ_CST); >> | ^~~~~~~~~~~~~~~~~~~~~ >> | atomic_ops/sysdeps/gcc/generic.h:87:42: warning: unused parameter 'addr' [-Wunused-parameter] >> | AO_test_and_set_full(volatile AO_TS_t *addr) >> | ^~~~ >> | atomic_ops.c: At top level: >> | atomic_ops.c:97:1: error: unknown type name 'AO_TS_t' >> | AO_TS_t AO_locks[AO_HASH_SIZE] = { >> | ^~~~~~~ >> | In file included from atomic_ops.c:47:0: >> | atomic_ops.h:160:33: error: 'AO_TS_CLEAR' undeclared here (not in a function) >> | #define AO_TS_INITIALIZER (AO_t)AO_TS_CLEAR >> | ^ >> | atomic_ops.c:98:3: note: in expansion of macro 'AO_TS_INITIALIZER' >> | AO_TS_INITIALIZER, AO_TS_INITIALIZER, AO_TS_INITIALIZER, AO_TS_INITIALIZER, >> | ^~~~~~~~~~~~~~~~~ >> | atomic_ops.c:106:31: error: unknown type name 'AO_TS_t' >> | static void lock_ool(volatile AO_TS_t *l) >> | ^~~~~~~ >> | atomic_ops.c: In function 'lock_ool': >> | atomic_ops.c:110:40: error: 'AO_TS_SET' undeclared (first use in this function) >> | while (AO_test_and_set_acquire(l) == AO_TS_SET) >> | ^~~~~~~~~ >> | atomic_ops.c: At top level: >> | atomic_ops.c:114:30: error: unknown type name 'AO_TS_t' >> | AO_INLINE void lock(volatile AO_TS_t *l) >> | ^~~~~~~ >> | In file included from atomic_ops.c:47:0: >> | atomic_ops.c: In function 'lock': >> | atomic_ops.c:116:53: error: 'AO_TS_SET' undeclared (first use in this function) >> | if (AO_EXPECT_FALSE(AO_test_and_set_acquire(l) == AO_TS_SET)) >> | ^ >> | atomic_ops.h:173:49: note: in definition of macro 'AO_EXPECT_FALSE' >> | # define AO_EXPECT_FALSE(expr) __builtin_expect(expr, 0) >> | ^~~~ >> | atomic_ops.c: At top level: >> | atomic_ops.c:120:32: error: unknown type name 'AO_TS_t' >> | AO_INLINE void unlock(volatile AO_TS_t *l) >> | ^~~~~~~ >> | atomic_ops.c: In function 'unlock': >> | atomic_ops.c:122:3: warning: implicit declaration of function 'AO_CLEAR' [-Wimplicit-function-declaration] >> | AO_CLEAR(l); >> | ^~~~~~~~ >> | atomic_ops.c: At top level: >> | atomic_ops.c:128:19: error: unknown type name 'AO_TS_t' >> | static volatile AO_TS_t init_lock = AO_TS_INITIALIZER; >> | ^~~~~~~ >> | atomic_ops.c: In function 'AO_fetch_compare_and_swap_emulation': >> | atomic_ops.c:154:3: error: unknown type name 'AO_TS_t' >> | AO_TS_t *my_lock = AO_locks + AO_HASH(addr); >> | ^~~~~~~ >> | atomic_ops.c: In function 'AO_compare_double_and_swap_double_emulation': >> | atomic_ops.c:176:3: error: unknown type name 'AO_TS_t' >> | AO_TS_t *my_lock = AO_locks + AO_HASH(addr); >> | ^~~~~~~ >> | atomic_ops.c: In function 'AO_store_full_emulation': >> | atomic_ops.c:201:3: error: unknown type name 'AO_TS_t' >> | AO_TS_t *my_lock = AO_locks + AO_HASH(addr); >> | ^~~~~~~ >> | Makefile:603: recipe for target 'atomic_ops.lo' failed >> | make[3]: Leaving directory '/tmp/buildd/libatomic-ops/libatomic-ops-7.4.4/src' >> | make[3]: *** [atomic_ops.lo] Error 1 >> | Makefile:462: recipe for target 'all' failed >> | make[2]: Leaving directory '/tmp/buildd/libatomic-ops/libatomic-ops-7.4.4/src' >> | Makefile:474: recipe for target 'all-recursive' failed >> | make[1]: Leaving directory '/tmp/buildd/libatomic-ops/libatomic-ops-7.4.4' >> I'm not sure what went wrong here. Could you maybe look into it? >> Maybe tile.h needs to #include "../test_and_set_t_is_ao_t.h" before >> including "generic.h"? >> Other than this, the tilegx bootstrap in Debian is slowly progressing >> well. The toolchain appears to just work and it builds some 12 packages >> already. More to come after libatomic_ops. >> Helmut >> _______________________________________________ >> bdwgc mailing list >> [email protected] >> https://lists.opendylan.org/mailman/listinfo/bdwgc >> > > -- > Chris Metcalf, Mellanox Technologies > http://www.mellanox.com > _______________________________________________ > bdwgc mailing list > [email protected] > https://lists.opendylan.org/mailman/listinfo/bdwgc