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