[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: RFC: EXP merge of OSX portability work



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.

-- 



Reply to: