Build failing from 20030715
H. J. Lu
hjl@lucon.org
Sun Jul 20 15:16:00 GMT 2003
On Sun, Jul 20, 2003 at 11:36:40AM +0200, Andreas Jaeger wrote:
> Jeff Bailey <jbailey@nisa.net> writes:
>
> > Using a CVS checkout from this morning, I get failures looking for
> > __libc_cleanup_push and __libc_cleanup_pop:
> >
> > misc/syslog.c:238: __libc_cleanup_push (free, buf);
> > misc/syslog.c:251: __libc_cleanup_push (cancel_handler, &clarg);
> > misc/syslog.c:364: __libc_cleanup_push (cancel_handler, NULL);
> > misc/syslog.c:393: __libc_cleanup_push (cancel_handler, NULL);
> >
> > misc/syslog.c:243: __libc_cleanup_pop (0);
> > misc/syslog.c:303: __libc_cleanup_pop (0);
> > misc/syslog.c:369: __libc_cleanup_pop (1);
> > misc/syslog.c:401: __libc_cleanup_pop (1);
>
> Uli, this is still failing.
>
> This needs changes in the generic files:
> ./sysdeps/generic/bits/libc-lock.h
> ./sysdeps/mach/bits/libc-lock.h
> ./sysdeps/mach/hurd/bits/libc-lock.h
> ./linuxthreads/sysdeps/pthread/bits/libc-lock.h
>
> As a workaround I suggest to just add:
> #define __libc_cleanup_push(fct, arg)
> #define __libc_cleanup_pop(execute)
>
> What do you think? I don't think we will support cleanup handling
> without nptl so making these nops should be the right way - isn't it?
>
> I'm appending a patch for linuxthreads which fixes this problem for
> me.
>
> Now I get:
> /builds/glibc/gcc-3.3/libc_pic.os(.text+0xeefbb): In function `uw_init_context_1':
> /usr/src/cvs/libc/elf/../sysdeps/generic/unwind-dw2.c:1195: undefined reference to `__builtin_dwarf_sp_column'
> /builds/glibc/gcc-3.3/libc_pic.os(.text+0xeefd0):/usr/src/cvs/libc/elf/../sysdeps/generic/unwind-dw2.c:1197: undefined reference to `__builtin_dwarf_sp_column'
> collect2: ld returned 1 exit status
>
> Do we really need the latest and greated GCC to compile glibc? I
> understand the requirements when using NPTL but this is with just
> linuxthreads,
>
I am using this patch.
H.J.
-------------- next part --------------
2003-07-20 <hongjiu.lu@intel.com>
* sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_push): New.
(__libc_cleanup_pop): Likewise.
--- linuxthreads/sysdeps/pthread/bits/libc-lock.h.cleanup 2003-02-05 01:53:23.000000000 -0800
+++ linuxthreads/sysdeps/pthread/bits/libc-lock.h 2003-07-17 16:51:43.000000000 -0700
@@ -250,6 +250,12 @@ typedef pthread_key_t __libc_key_t;
_pthread_cleanup_pop_restore (&_buffer, (DOIT)); \
}
+#define __libc_cleanup_push(FCT, ARG) \
+ __libc_cleanup_region_start (1, (FCT), (ARG))
+
+#define __libc_cleanup_pop(DOIT) \
+ __libc_cleanup_region_end ((DOIT))
+
/* Create thread-specific key. */
#define __libc_key_create(KEY, DESTRUCTOR) \
(__libc_maybe_call (__pthread_key_create, (KEY, DESTRUCTOR), 1))
More information about the Libc-alpha
mailing list