Lutz,

I think you have found the problem.

>Ok, let's try to narrow things down: I have switched to GCC for the time
>being and got a similar compile error:
>gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../../include -I../include    -O6 -DDBUG_OFF
>-DHPUX -I/opt/dce/include  -DHAVE_BROKEN_SNPRINTF -c os0thread.c
>os0thread.c: In function `os_thread_get_curr_id':
>os0thread.c:29: aggregate value used where an integer was expected

Here I try to cast (convert) a thread object into a long integer.
Maybe a (handle to) thread object in HP-UX is represented as a struct,
and the typecast is not possible. Solution: change the typedef in
os0thread.h to:

typedef pthread_t os_thread_id_t

and replace comparisons like thr_id1 == thr_id2 by

pthread_equal(thr_id1, thr_id2)

Well, this needs some work from me, as the source code must be changed
possibly on several lines. Another possibility is that if you from the
header file pthread.h for HP-UX see how to convert a thread handle to
a (unique) unsigned long integer, you could try that fix on line 29.

>os0thread.c: In function `os_thread_create':
>os0thread.c:69: warning: dereferencing `void *' pointer
>os0thread.c:69: invalid use of void expression
>gmake[4]: *** [os0thread.o] Error 1

Here some of the parameters I pass are not correct for the HP-UX pthread header
file definitions, possibly the NULL that I pass as the second parameter.
I looked in an online manual of HP-UX 10.30 that the second parameter
should be pthread_attr_default, if default attributes are wanted
for a pthread creation. You could try replacing the NULL on line 69
by pthread_attr_default.

>Since threads are not well supported in HP-UX 10.20 I don't have experience
>with threads. I can send you the thread header files, if you think this
>might help.

It would help. If you can, please send them to [EMAIL PROTECTED]
(especially pthread.h).

> I will check how one could generate makefiles with less strict
> warnings control. One possibility is to create a file Makefile.i to
> the directory:
>  ...your mysql source dir... /innobase/include
> 
> and put the following define there:
> 
> CFLAGS = -DHAVE_CONFIG_H -I. -I. -I.. -I../../include -I../include  -DHPUX
> -Dinline= -I/opt/dce/include -I/usr/local/include  -O -DDBUG_OFF 
> 
> It should override the flags generated by automake.
> Then go to the innobase subdirectory and regenerate new Makefiles:
> 
> automake
> autoconf
> ./configure
> 
> Ignore the warnings automake and autoconf give. Then type
> 
> make
> 
> Probably you will get new errors from the HP compiler now :), I can help you
> tomorrow if you report the next problems you encounter.

>Actually, I don't get any error. It steps into each directory and has nothing
>to do at all. Seems the .o and .c files are not propagated into the Makefiles.

Sorry, forgot to mention you should delete all .o files in subdirs. Type
in the innobase directory:

rm ./*/*.o

and only after that do the make.

Thank you for trying on HP-UX. On Solaris I was able to compile, but
obviously I still have overlooked some Posix thread subtleties.

Best regards,

Heikki

>Best regards,
>       Lutz
>-- 
>Lutz Jaenicke                             [EMAIL PROTECTED]
>BTU Cottbus               http://www.aet.TU-Cottbus.DE/personen/jaenicke/
>Lehrstuhl Allgemeine Elektrotechnik                  Tel. +49 355 69-4129
>Universitaetsplatz 3-4, D-03044 Cottbus              Fax. +49 355 69-4153

>---------------------------------------------------------------------------
-----


---------------------------------------------------------------------
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/           (the list archive)

To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

Reply via email to