rpm, pthreads(nptl?)

Paweł Sikora pluto w ds14.agh.edu.pl
Śro, 21 Sty 2004, 18:25:39 CET


On Wed, 21 Jan 2004, Jakub Bogusz wrote:

> > then mv -f ".deps/rpmsq.Tpo" ".deps/rpmsq.Plo"; else rm -f ".deps/rpmsq.Tpo"; exit 1; fi
> >  i686-pld-linux-gcc -DHAVE_CONFIG_H -I. -I. -I.. -I. -I.. -I/usr/include/beecrypt -O2 -march=i686 -fomit-frame-pointer -funroll-
> > all-loops -pipe -fPIC -DPIC -D_GNU_SOURCE -D_REENTRANT -Wall -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes -Wno-char-
> > subscripts -Wno-strict-aliasing -MT rpmsq.lo -MD -MP -MF .deps/rpmsq.Tpo -c rpmsq.c  -fPIC -DPIC -o .libs/rpmsq.o
> > rpmsq.c: In function `rpmsqEnable':
> > rpmsq.c:347: warning: assignment from incompatible pointer type
> > rpmsq.c: In function `rpmsqExecve':
> > rpmsq.c:633: error: parse error before '}' token
> > rpmsq.c:651: error: parse error at end of input
> > make[2]: *** [rpmsq.lo] Błąd 1
> > make[2]: Opuszczenie katalogu `/home/users/pluto/rpm/BUILD/rpm-4.3/rpmio'
> > make[1]: *** [all-recursive] Błąd 1
> > make[1]: Opuszczenie katalogu `/home/users/pluto/rpm/BUILD/rpm-4.3'
> > make: *** [all] Błąd 2
> > błąd: Błędny status wyjścia z /var/tmp/rpm-tmp.2898 (%build)
>
> Przepuść przez preprocesor i zobacz co tam ląduje.

makro

    CLEANUP_HANDLER(sigchld_cancel, &pid, &oldtype);

jest rozwijane przez cos takiego

#define	CLEANUP_RESET(__execute, __oldtype) \
    (void) pthread_cleanup_pop(__execute); \
    (void) pthread_setcanceltype ((__oldtype), &(__oldtype));

w cos takiego

    (void) pthread_setcanceltype (PTHREAD_CANCEL_ASYNCHRONOUS, (&oldtype));
    do {
	__pthread_unwind_buf_t __cancel_buf;
	void (*__cancel_routine) (void *) = ((sigchld_cancel));
	void *__cancel_arg = ((&pid));
	int not_first_call = __sigsetjmp ((struct __jmp_buf_tag *) __cancel_buf.__cancel_jmp_buf, 0);
	if (__builtin_expect (not_first_call, 0))
	{
	    __cancel_routine (__cancel_arg);
	    __pthread_unwind_next (&__cancel_buf);
	}
	__pthread_register_cancel (&__cancel_buf);
    do {;;



Więcej informacji o liście dyskusyjnej pld-devel-pl