This is the mail archive of the 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


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/  -B[...]/csu/  -Wl,--version-script=[...]/ -Wl, -Wl,-z,combreloc -Wl,-z,relro -Wl,--hash-style=both -nostdlib -nostartfiles -e __libc_main [...] -o [...]/ [...] -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

One possibility to fix this would be to add -lgcc_eh to 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?


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]