Hi Jack! On Mon, 22 Mar 2004, Jack O'Quin wrote:
> Before that, I want Paul and those who are packaging JACK for other > architectures to take a look at what has been done and provide > feedback. So far, we have only tested with i686-pc-linux-gnu and > powerpc-apple-darwin7.2.0. If this approach turns out to be a problem > on other systems, it will be messy to back out all the changes. They > are rather pervasive. > > I don't have access to any other test systems. Can someone please try > building the current EXP tree on some or all the Debian CPU platforms? > PowerPC/Linux would be good place to start. This might help avoid a > train-wreck when it comes time to package the next JACK release. > JACK uses some low-level machine operations for thread-safe updates to > shared memory. A low-level implementation of <sysdeps/atomicity.h> is > provided for every target processor architecture. There is also a > generic implementation using POSIX spin locks, but that is not a good > enough solution for serious use. > > The GCC package provides versions that work on most modern > hardware. We've tried to keep things as close to the original as > possible, while removing a bunch of os-specific files that didn't seem > relevant. A primary goal has been to avoid changing the CPU-dependent > <sysdeps/atomicity.h> headers. Make dist doesn't work from a fresh checkout/autogen.sh: * depcomp is missing in CVS in config/ AFAICS * files/links seem to be missing for the config includes. make dist fails from a fresh checkout if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../config -I.. -I.. -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -Wall -g -DJACKD_LOCATION=\"/usr/local/bin/jackd\" -I../config -I.. -I.. -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -Wall -g -MT jackd.o -MD -MP -MF ".deps/jackd.Tpo" \ -c -o jackd.o `test -f 'jackd.c' || echo './'`jackd.c; \ then mv -f ".deps/jackd.Tpo" ".deps/jackd.Po"; \ else rm -f ".deps/jackd.Tpo"; exit 1; \ fi jackd.c:23:32: sysdeps/os_defines.h: No such file or directory jackd.c:27:10: #include expects "FILENAME" or <FILENAME> In file included from ../jack/engine.h:26, from jackd.c:37: ../jack/internal.h:30:32: sysdeps/os_defines.h: No such file or directory ../jack/internal.h:47:26: sysdeps/time.h: No such file or directory ../jack/internal.h:48:31: sysdeps/atomicity.h: No such file or directory it works after building it in the cvs checkout dir and then doing make dist. * Debian has i386 as an (the?) architecture for all intel i386 and upwards. But OTOH not really because libstdc++ already needs the presence of i486 instructions. I had to force config/configure.host to use i486 as architecture for i386. The diff contains the patch. * An idea of the Debian packages is here: http://people.debian.org/~jordens/debs/ * I'm trying it on a few architectures I can get my hands on. powerpc, sparc, seem fine. ia64, s390 get detected as generic which is a regression IIRC. * the generic atomicity implementation seems to be broken. I didn't look into this further: cc -DHAVE_CONFIG_H -I. -I. -I.. -I../config -I.. -I.. -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -Wall -g -I../config -I.. -I.. -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -Wall -g -Wp,-MD,.deps/shm.pp -c shm.c -fPIC -DPIC -o .libs/shm.o In file included from ../config/sysdeps/time.h:27, from ../jack/internal.h:47, from shm.c:35: ../config/sysdeps/cycles.h:27:2: warning: #warning You are compiling JACK on a platform for which jack/cycles.h needs work In file included from ../jack/internal.h:48, from shm.c:35: ../config/sysdeps/atomicity.h:76: error: parse error before '<' token ../config/sysdeps/atomicity.h:82: error: parse error before '<' token ../config/sysdeps/atomicity.h:85: error: syntax error before "unsigned" ../config/sysdeps/atomicity.h:85: error: parse error before '<' token ../config/sysdeps/atomicity.h: In function `__exchange_and_add': ../config/sysdeps/atomicity.h:98: error: `__Atomicity_lock' undeclared (first use in this function) ../config/sysdeps/atomicity.h:98: error: (Each undeclared identifier is reported only once ../config/sysdeps/atomicity.h:98: error: for each function it appears in.) ../config/sysdeps/atomicity.h:98: error: parse error before ':' token ../config/sysdeps/atomicity.h:104: error: parse error before ':' token ../config/sysdeps/atomicity.h: In function `__atomic_add': ../config/sysdeps/atomicity.h:120: error: `__Atomicity_lock' undeclared (first use in this function) ../config/sysdeps/atomicity.h:120: error: parse error before ':' token ../config/sysdeps/atomicity.h:125: error: parse error before ':' token make[3]: *** [shm.lo] Error 1 Robert. --