Fix build problems with old binutils.

Old binutils don't provide IFUNC and don't generate the section start/end
symbols we expect.  At least for now only add the initializer code for
static IFUNC relocations if multi-arch support is requested.
This commit is contained in:
Ulrich Drepper 2009-06-05 09:42:32 -07:00
parent 2f3f7b9da2
commit 443caceb35
2 changed files with 8 additions and 3 deletions

View File

@ -1,3 +1,8 @@
2009-06-05 Ulrich Drepper <drepper@redhat.com>
* csu/elf-init.c: Only compile in IFUNC functionality if USE_MULTIARCH
is defined.
2009-06-04 Ulrich Drepper <drepper@redhat.com>
* sysdeps/x86_64/strlen.S: Minor optimizations.

View File

@ -1,5 +1,5 @@
/* Startup support for ELF initializers/finalizers in the main executable.
Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
Copyright (C) 2002, 2003, 2004, 2005, 2009 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -36,7 +36,7 @@
#include <stddef.h>
#ifndef LIBC_NONSHARED
#if defined USE_MULTIARCH && !defined LIBC_NONSHARED
# include <link.h>
# include <dl-irel.h>
@ -80,7 +80,7 @@ __libc_csu_init (int argc, char **argv, char **envp)
/* For dynamically linked executables the preinit array is executed by
the dynamic linker (before initializing any shared object. */
#ifndef LIBC_NONSHARED
#if defined USE_MULTIARCH && !defined LIBC_NONSHARED
# ifdef ELF_MACHINE_IRELA
{
const size_t size = __rela_iplt_end - __rela_iplt_start;