This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

__attribute__ (__cleanup__) vs. _Unwind_Resume


Hello!

After fixing the usual suspects, glibc HEAD currently fails to build like
this on GNU/Hurd:

    i586-pc-gnu-gcc   -shared -static-libgcc -Wl,-O1  -Wl,-z,defs -Wl,-dynamic-linker=/lib/ld.so.1  -B[...]/csu/  -Wl,--version-script=[...]/libc.map -Wl,-soname=libc.so.0.3 -Wl,-z,combreloc -Wl,-z,relro -Wl,--hash-style=both -nostdlib -nostartfiles -e __libc_main [...] -o [...]/libc.so [...] -lgcc
    [...]/libc_pic.os: In function `__libc_readv':
    [...]/sysdeps/posix/readv.c:61: undefined reference to `_Unwind_Resume'
    [...]/libc_pic.os: In function `__libc_writev':
    [...]/sysdeps/posix/writev.c:62: undefined reference to `_Unwind_Resume'
    [...]/libc_pic.os:(.data.DW.ref.__gcc_personality_v0[DW.ref.__gcc_personality_v0]+0x0): undefined reference to `__gcc_personality_v0'
    collect2: ld returned 1 exit status

This came up when Ulrich corrected sysdeps/posix/readv.c and writev.c for
proper cancellation handling using __attribute__ (__cleanup__).  Linux
doesn't have this problem, as sysdeps/unix/sysv/linux/readv.c and
writev.c don't have to clean-up (at least as long as they don't use the
sysdeps/posix/ files, which they don't do as long as
__LINUX_KERNEL_VERSION is no less than 2.6.18, as per
__ASSUME_COMPLETE_READV_WRITEV).

One possibility to fix this would be to add -lgcc_eh to libc.so-gnulib in
Makeconfig (I don't know yet if that is legitimate), or perhaps, instead
of that, we should introduce / use something like
nptl/sysdeps/pthread/unwind-resume.c?  Which one is possible, which one
do you prefer?


Regards,
 Thomas

Attachment: signature.asc
Description: Digital signature


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]