bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Glibc building procedure error report.


From: Ludovic Courtès
Subject: Re: Glibc building procedure error report.
Date: Sat, 05 Apr 2014 15:36:17 +0200
User-agent: Gnus/5.130007 (Ma Gnus v0.7) Emacs/24.3 (gnu/linux)

Samuel Thibault <samuel.thibault@gnu.org> skribis:

> Manolis Ragkousis, le Wed 02 Apr 2014 00:29:13 +0000, a écrit :
>> >  /../build/libc_pic.os: In function `__fork':
>> >  /../source/posix/../sysdeps/mach/hurd/fork.c:71: undefined reference to 
>> > `__start__hurd_atfork_prepare_hook'
>> >  /../gcc-cross-sans-libc-i686-pc-gnu-4.8.2/libexec/gcc/i686-pc-gnu/ld: 
>> > /../build/libc_pic.os: relocation R_386_GOTOFF against undefined hidden >  
>> > symbol `__start__hurd_atfork_prepare_hook' can not be used when making a 
>> > shared object
>> >  /../gcc-cross-sans-libc-i686-pc-gnu-4.8.2/libexec/gcc/i686-pc-gnu/ld: 
>> > final link failed: Bad value
>> >  collect2: error: ld returned 1 exit status
>> >  ../Makerules:614: recipe for target '/../build/libc.so' failed
>> >  make[2]: *** 
>> > [/tmp/nix-build-glibc-hurd-cross-i686-pc-gnu-2.18.drv-38/build/libc.so] 
>> > Error 1
>> >  make[2]: Leaving directory 
>> > '/tmp/nix-build-glibc-hurd-cross-i686-pc-gnu-2.18.drv-38/source/elf'
>> >  Makefile:233: recipe for target 'elf/subdir_lib' failed
>> 
>> I searched the source files in posix and sysdeps/mach/hurd/ and I
>> can't seem to find any reference to
>> `__start__hurd_atfork_prepare_hook'.
>> 
>> Any ideas?
>
> In such cases, look for subparts of the name, here atfork_prepare, and
> you'll see 
>
> sysdeps/mach/hurd/fork.c:DEFINE_HOOK (_hurd_atfork_prepare_hook, (void));
>
> The symbol is supposed to be defined automagically by the linker.  I
> don't know how exactly.

The linker magic is in the shlib.lds rules of Makerules, added in commit
56798c44 of glibc/Savannah.

However, it adds the start/stop symbols for the hurd_fork hooks, but not
for the hurd_atfork hooks.  Do we need something like this:

diff --git a/Makerules b/Makerules
index fe967ad..cbf1b39 100644
--- a/Makerules
+++ b/Makerules
@@ -506,6 +506,15 @@ $(common-objpfx)shlib.lds: $(common-objpfx)config.make 
$(..)Makerules
                 PROVIDE(__start__hurd_preinit_hook = .);\
                 _hurd_preinit_hook : { *(_hurd_preinit_hook) }\
                 PROVIDE(__stop__hurd_preinit_hook = .);\
+                PROVIDE(__start__hurd_atfork_prepare_hook = .);\
+                _hurd_atfork_prepare_hook : { *(_hurd_atfork_prepare_hook) }\
+                PROVIDE(__stop__hurd_atfork_prepare_hook = .);\
+                PROVIDE(__start__hurd_atfork_child_hook = .);\
+                _hurd_atfork_child_hook : { *(_hurd_atfork_child_hook) }\
+                PROVIDE(__stop__hurd_atfork_child_hook = .);\
+                PROVIDE(__start__hurd_atfork_parent_hook = .);\
+                _hurd_atfork_parent_hook : { *(_hurd_atfork_parent_hook) }\
+                PROVIDE(__stop__hurd_atfork_parent_hook = .);\
                 PROVIDE(__start__hurd_fork_prepare_hook = .);\
                 _hurd_fork_prepare_hook : { *(_hurd_fork_prepare_hook) }\
                 PROVIDE(__stop__hurd_fork_prepare_hook = .);\
Thanks,
Ludo’.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]