Hi Pedro,
 
I am still not able to compile any kind of pthreads with cegcc/mingw32ce.
 
I did some smaller modifications to the source of mingw32e and to 
pthread-w32-2.8.0, and it almost compiles. But at the end I get lots of 
undefined references. This is strange, since the compiler flag "-DWINCE" should 
take care of this, for instance by using the errno hack you mentioned.
 
I commented the following lines out on mingw32Ce files:
  errno.h 12,13,14,109
  signal.h 12
  process.h 99,102
 
And on pthread-w32-2.8.0:
  ptw32_allUser... 44,45,194 
 
I also changed GNUMakefile on line 66 from "-lwsock32" to "-lws2", since that 
removes one undefined reference. The other libraries from mingw32ce do not seem 
to solve any undefined references...
 
I compile with:
 
make CROSS=arm-wince-mingw32ce- CC="arm-wince-mingw32ce-g++ -DWINCE" clean GC
 
The output is at the end of this mail.
 
PS1: I did not find any information on someone compiling pthreads with 
cegcc/mingw32ce. Do you have some more information? I am not a very experienced 
programmer, so I guess it would be hard for me to port jamvm to native win32 
threads...
 
PS2: There are other kinds of Java for WinCe, but they all have different 
limitations. See
http://www.rainer-keuchel.de/wince/kaffe.html
http://www2s.biglobe.ne.jp/~dat/java/project/jvm/index_en.html
 
Kind Regards,
Leonardo.

rm -f *~
rm -f *.i
rm -f *.o
rm -f *.obj
rm -f *.exe
rm -f pthread.def
make CLEANUP=-D__CLEANUP_C XC_FLAGS=" " OBJ="attr.o barrier.o cancel.o 
cleanup.o condvar.o create.o dll.o errno.o exit.o fork.o global.o misc.o 
mutex.o nonportable.o private.o rwlock.o sched.o semaphore.o signal.o spin.o 
sync.o tsd.o version.o" pthreadGC2.dll
make[1]: Entering directory 
`/cec/storage/dqkal002/homes/d046460/CeGCC/pthreads-w32-2-8-0-release'
arm-wince-mingw32ce-g++ -DWINCE -c -o attr.o -D__CLEANUP_C -O3 
-finline-functions  -I. -DHAVE_CONFIG_H -Wall  attr.c
arm-wince-mingw32ce-g++ -DWINCE -c -o barrier.o -D__CLEANUP_C -O3 
-finline-functions  -I. -DHAVE_CONFIG_H -Wall  barrier.c
pthread_barrier_wait.c: In function 'int 
pthread_barrier_wait(pthread_barrier_t_**)':
pthread_barrier_wait.c:56: warning: dereferencing type-punned pointer will 
break strict-aliasing rules
pthread_barrier_wait.c:90: warning: dereferencing type-punned pointer will 
break strict-aliasing rules
arm-wince-mingw32ce-g++ -DWINCE -c -o cancel.o -D__CLEANUP_C -O3 
-finline-functions  -I. -DHAVE_CONFIG_H -Wall  cancel.c
arm-wince-mingw32ce-g++ -DWINCE -c -o cleanup.o -D__CLEANUP_C -O3 
-finline-functions  -I. -DHAVE_CONFIG_H -Wall  cleanup.c
arm-wince-mingw32ce-g++ -DWINCE -c -o condvar.o -D__CLEANUP_C -O3 
-finline-functions  -I. -DHAVE_CONFIG_H -Wall  condvar.c
arm-wince-mingw32ce-g++ -DWINCE -c -o create.o -D__CLEANUP_C -O3 
-finline-functions  -I. -DHAVE_CONFIG_H -Wall  create.c
arm-wince-mingw32ce-g++ -DWINCE -c -o dll.o -D__CLEANUP_C -O3 
-finline-functions  -I. -DHAVE_CONFIG_H -Wall  dll.c
arm-wince-mingw32ce-g++ -DWINCE -c -o errno.o -D__CLEANUP_C -O3 
-finline-functions  -I. -DHAVE_CONFIG_H -Wall  errno.c
arm-wince-mingw32ce-g++ -DWINCE -c -o exit.o -D__CLEANUP_C -O3 
-finline-functions  -I. -DHAVE_CONFIG_H -Wall  exit.c
arm-wince-mingw32ce-g++ -DWINCE -c -o fork.o -D__CLEANUP_C -O3 
-finline-functions  -I. -DHAVE_CONFIG_H -Wall  fork.c
arm-wince-mingw32ce-g++ -DWINCE -c -o global.o -D__CLEANUP_C -O3 
-finline-functions  -I. -DHAVE_CONFIG_H -Wall  global.c
arm-wince-mingw32ce-g++ -DWINCE -c -o misc.o -D__CLEANUP_C -O3 
-finline-functions  -I. -DHAVE_CONFIG_H -Wall  misc.c
pthread_once.c: In function 'int pthread_once(pthread_once_t*, void (*)())':
pthread_once.c:57: warning: dereferencing type-punned pointer will break 
strict-aliasing rules
pthread_once.c:61: warning: dereferencing type-punned pointer will break 
strict-aliasing rules
pthread_self.c: In function 'pthread_t pthread_self()':
pthread_self.c:63: warning: unused variable 'nil'
arm-wince-mingw32ce-g++ -DWINCE -c -o mutex.o -D__CLEANUP_C -O3 
-finline-functions  -I. -DHAVE_CONFIG_H -Wall  mutex.c
arm-wince-mingw32ce-g++ -DWINCE -c -o nonportable.o -D__CLEANUP_C -O3 
-finline-functions  -I. -DHAVE_CONFIG_H -Wall  nonportable.c
pthread_win32_attach_detach_np.c: In function 'BOOL 
pthread_win32_process_attach_np()':
pthread_win32_attach_detach_np.c:54: warning: unused variable 'vProcessCPUs'
pthread_win32_attach_detach_np.c:55: warning: unused variable 'vSystemCPUs'
arm-wince-mingw32ce-g++ -DWINCE -c -o private.o -D__CLEANUP_C -O3 
-finline-functions  -I. -DHAVE_CONFIG_H -Wall  private.c
In file included from private.c:54:
ptw32_timespec.c:62: warning: this decimal constant is unsigned only in ISO C90
ptw32_timespec.c:77: warning: this decimal constant is unsigned only in ISO C90
ptw32_timespec.c:79: warning: this decimal constant is unsigned only in ISO C90
ptw32_MCS_lock.c: In function 'void 
ptw32_mcs_lock_release(ptw32_mcs_local_node_t*)':
ptw32_MCS_lock.c:187: warning: dereferencing type-punned pointer will break 
strict-aliasing rules
ptw32_MCS_lock.c:205: warning: dereferencing type-punned pointer will break 
strict-aliasing rules
ptw32_getprocessors.c: In function 'int ptw32_getprocessors(int*)':
ptw32_getprocessors.c:58: warning: unused variable 'vProcessCPUs'
ptw32_getprocessors.c:59: warning: unused variable 'vSystemCPUs'
arm-wince-mingw32ce-g++ -DWINCE -c -o rwlock.o -D__CLEANUP_C -O3 
-finline-functions  -I. -DHAVE_CONFIG_H -Wall  rwlock.c
arm-wince-mingw32ce-g++ -DWINCE -c -o sched.o -D__CLEANUP_C -O3 
-finline-functions  -I. -DHAVE_CONFIG_H -Wall  sched.c
arm-wince-mingw32ce-g++ -DWINCE -c -o semaphore.o -D__CLEANUP_C -O3 
-finline-functions  -I. -DHAVE_CONFIG_H -Wall  semaphore.c
arm-wince-mingw32ce-g++ -DWINCE -c -o signal.o -D__CLEANUP_C -O3 
-finline-functions  -I. -DHAVE_CONFIG_H -Wall  signal.c
arm-wince-mingw32ce-g++ -DWINCE -c -o spin.o -D__CLEANUP_C -O3 
-finline-functions  -I. -DHAVE_CONFIG_H -Wall  spin.c
arm-wince-mingw32ce-g++ -DWINCE -c -o sync.o -D__CLEANUP_C -O3 
-finline-functions  -I. -DHAVE_CONFIG_H -Wall  sync.c
arm-wince-mingw32ce-g++ -DWINCE -c -o tsd.o -D__CLEANUP_C -O3 
-finline-functions  -I. -DHAVE_CONFIG_H -Wall  tsd.c
arm-wince-mingw32ce-windres --include-dir=. -D__CLEANUP_C -o version.o 
version.rc
arm-wince-mingw32ce-g++ -DWINCE -D__CLEANUP_C -O3 -finline-functions -shared -o 
pthreadGC2.dll attr.o barrier.o cancel.o cleanup.o condvar.o create.o dll.o 
errno.o exit.o fork.o global.o misc.o mutex.o nonportable.o private.o rwlock.o 
sched.o semaphore.o signal.o spin.o sync.o tsd.o version.o
condvar.o:condvar.c:(.text+0x184): undefined reference to `errno'
condvar.o:condvar.c:(.text+0x25c): undefined reference to `errno'
condvar.o:condvar.c:(.text+0x400): undefined reference to `errno'
condvar.o:condvar.c:(.text+0x5a0): undefined reference to `errno'
condvar.o:condvar.c:(.text+0x6f0): undefined reference to `errno'
condvar.o:condvar.c:(.text+0x848): more undefined references to `errno' follow
create.o:create.c:(.text+0x108): undefined reference to `_beginthread'
exit.o:exit.c:(.text+0x2c): undefined reference to `_endthread'
misc.o:misc.c:(.text+0x224): undefined reference to `ptw32_mcs_lock_acquire'
misc.o:misc.c:(.text+0x244): undefined reference to `ptw32_mcs_lock_release'
misc.o:misc.c:(.text+0x274): undefined reference to `ptw32_mcs_lock_release'
mutex.o:mutex.c:(.text+0x3c8): undefined reference to `ptw32_relmillisecs'
mutex.o:mutex.c:(.text+0x550): undefined reference to `ptw32_relmillisecs'
private.o:private.c:(.text+0xe4): undefined reference to `errno'
private.o:private.c:(.text+0x2b8): undefined reference to `_endthread'
private.o:private.c:(.text+0x4d4): undefined reference to `_endthread'
sched.o:sched.c:(.text+0x1c): undefined reference to `errno'
sched.o:sched.c:(.text+0x3c): undefined reference to `errno'
sched.o:sched.c:(.text+0xb4): undefined reference to `errno'
sched.o:sched.c:(.text+0x130): undefined reference to `errno'
semaphore.o:semaphore.c:(.text+0x14): undefined reference to `errno'
semaphore.o:semaphore.c:(.text+0x2c): more undefined references to `errno' 
follow
semaphore.o:semaphore.c:(.text+0x32c): undefined reference to 
`ptw32_relmillisecs'
semaphore.o:semaphore.c:(.text+0x3ec): undefined reference to `errno'
semaphore.o:semaphore.c:(.text+0x550): undefined reference to `errno'
semaphore.o:semaphore.c:(.text+0x61c): undefined reference to `errno'
semaphore.o:semaphore.c:(.text+0x6d4): undefined reference to `errno'
tsd.o:tsd.c:(.text+0x18): undefined reference to `WSAGetLastError'
tsd.o:tsd.c:(.text+0x38): undefined reference to `WSASetLastError'
collect2: ld returned 1 exit status
make[1]: *** [pthreadGC2.dll] Error 1
make[1]: Leaving directory 
`/cec/storage/dqkal002/homes/d046460/CeGCC/pthreads-w32-2-8-0-release'
make: *** [GC] Error 2

----- Ursprüngliche Mail ----
Von: Pedro Alves <[EMAIL PROTECTED]>
An: Leonardo Weiss Chaves <[EMAIL PROTECTED]>
CC: cegcc-devel@lists.sourceforge.net
Gesendet: Dienstag, den 10. Juli 2007, 23:22:15 Uhr
Betreff: Re: [Cegcc-devel] Building pthread.


Hi Leonardo,

sorry for the delay,

Leonardo Weiss Chaves wrote:
> Hi,
> 
> I am trying to build jamvm (http://jamvm.sourceforge.net/) with 
> cegcc/mingw32ce, since jamvm can also be build with cygwin 
> (http://developer.classpath.org/mediation/ClasspathOnCygwin).
> 

Cool stuff.  I wish I knew about this a year ago, when I was stuck with
Jeode and Thinlet in a project at my last job.

> I am able to build classpath, but when I run the configure script from jamvm 
> I get 
> 
> checking for pthread_self in -lpthread... no
> configure: error: libpthread is missing
> 
> with both ceggc and mingw32ce.
> 
> So I downloaded pthread 2.0.7 from http://www.gnu.org/software/pth/ and tried 
> building it, but the configure script always fails with both cegcc and 
> mingw32ce. I also wanted to try pthreads-win32 
> (http://sources.redhat.com/pthreads-win32/), but it has no configure script, 
> so I was not able to build it.
> 
> Has anyone managed to build pthreads with cegcc or with mingw32ce? Or can 
> anyone help me build it ;-)
> 

Any luck on this yet?  AFAIR, some did get pthread built with cegcc, back
in the berlios days.

I though that there was already a port of pthreads-win32 for WinCE at
pthreads-win32 upstream.  I've seen the patch for it in the past
somewhere, and I remember that it wasn't that clean (defined an int
errno as a workaround, for example), but it was reported to work
by its author.

OTOH, how hard would it be to add native win32 threads support to jamwm?

Cheers,
Pedro Alves




        
                
___________________________________________________________ 
Der frühe Vogel fängt den Wurm. Hier gelangen Sie zum neuen Yahoo! Mail: 
http://mail.yahoo.de

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Cegcc-devel mailing list
Cegcc-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/cegcc-devel

Reply via email to