crtstuff.c (init_dummy): Use CRT_END_INIT_DUMMY if defined.

* crtstuff.c (init_dummy): Use CRT_END_INIT_DUMMY if defined.
	Remove ia32 linux PIC kludge and move it...
	* config/i386/linux.h (CRT_END_INIT_DUMMY): ...here.

From-SVN: r40627
This commit is contained in:
Jakub Jelinek 2001-03-19 19:07:32 +01:00 committed by Jakub Jelinek
parent 7343a5a99b
commit 373368fd87
3 changed files with 26 additions and 14 deletions

View File

@ -1,3 +1,9 @@
2001-03-19 Jakub Jelinek <jakub@redhat.com>
* crtstuff.c (init_dummy): Use CRT_END_INIT_DUMMY if defined.
Remove ia32 linux PIC kludge and move it...
* config/i386/linux.h (CRT_END_INIT_DUMMY): ...here.
Mon Mar 19 18:53:54 CET 2001 Jan Hubicka <jh@suse.cz>
* i386.md (absdf2 expander): Fix 64bit case.

View File

@ -170,3 +170,21 @@ Boston, MA 02111-1307, USA. */
} \
} while (0)
#endif
#if defined(__PIC__) && defined (USE_GNULIBC_1)
/* This is a kludge. The i386 GNU/Linux dynamic linker needs ___brk_addr,
__environ and atexit (). We have to make sure they are in the .dynsym
section. We accomplish it by making a dummy call here. This
code is never reached. */
#define CRT_END_INIT_DUMMY \
do \
{ \
extern void *___brk_addr; \
extern char **__environ; \
\
___brk_addr = __environ; \
atexit (0); \
} \
while (0)
#endif

View File

@ -414,20 +414,8 @@ init_dummy (void)
FORCE_INIT_SECTION_ALIGN;
#endif
asm (TEXT_SECTION_ASM_OP);
/* This is a kludge. The i386 GNU/Linux dynamic linker needs ___brk_addr,
__environ and atexit (). We have to make sure they are in the .dynsym
section. We accomplish it by making a dummy call here. This
code is never reached. */
#if defined(__linux__) && defined(__PIC__) && defined(__i386__)
{
extern void *___brk_addr;
extern char **__environ;
___brk_addr = __environ;
atexit (0);
}
#ifdef CRT_END_INIT_DUMMY
CRT_END_INIT_DUMMY;
#endif
}