gcc/libgcc/config/i386/libgcc-glibc.ver
Rainer Orth aca06c900e Use i386-cpuinfo.c on all i386 targets
libgcc:
	* config.host (i[34567]86-*-linux*, x86_64-*-linux*)
	(i[34567]86-*-kfreebsd*-gnu, x86_64-*-kfreebsd*-gnu)
	(i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*): Move
	i386/t-cpuinfo ...
	(i[34567]86-*-*, x86_64-*-*): ... here.

	* config/i386/libgcc-bsd.ver (GCC_4.8.0): New version.
	* config/i386/libgcc-sol2.ver (GCC_4.8.0): New version.

	* config/i386/i386-cpuinfo.c: Rename to ...
	* config/i386/cpuinfo.c: ... this.
	* config/i386/t-cpuinfo (LIB2ADD): Reflect this.

	* configure.ac (AC_CONFIG_HEADER): Call for auto-target.h.
	(libgcc_cv_init_priority): New test.
	* configure: Regenerate.
	* config.in: New file.
	* Makefile.in (clean): Rename config.h to auto-target.h.
	(config.h): Likewise.
	(stamp-h): Likewise.

	* config/i386/cpuinfo.c (auto-target.h): Include.
	(CONSTRUCTOR_PRIORITY): Define.
	(__cpu_indicator_init): Use it.

	gcc
	* doc/extend.texi (X86 Built-in Functions, __builtin_cpu_init):
	Document requirement to call in constructors.

	* config/i386/i386.c: Update comments for i386-cpuinfo.c name
	change.

From-SVN: r187365
2012-05-10 08:51:39 +00:00

195 lines
3.5 KiB
Plaintext

# Copyright (C) 2008, 2010, 2012 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
# GCC is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3, or (at your option)
# any later version.
#
# GCC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GCC; see the file COPYING3. If not see
# <http://www.gnu.org/licenses/>.
# In order to work around the very problems that force us to now generally
# create a libgcc.so, glibc reexported a number of routines from libgcc.a.
# By now choosing the same version tags for these specific routines, we
# maintain enough binary compatibility to allow future versions of glibc
# to defer implementation of these routines to libgcc.so via DT_AUXILIARY.
%ifndef __x86_64__
%exclude {
__divdi3
__moddi3
__udivdi3
__umoddi3
__register_frame
__register_frame_table
__deregister_frame
__register_frame_info
__deregister_frame_info
__frame_state_for
__register_frame_info_table
}
%inherit GCC_3.0 GLIBC_2.0
GLIBC_2.0 {
# Sampling of DImode arithmetic used by (at least) i386 and m68k.
__divdi3
__moddi3
__udivdi3
__umoddi3
# Exception handling support functions used by most everyone.
__register_frame
__register_frame_table
__deregister_frame
__register_frame_info
__deregister_frame_info
__frame_state_for
__register_frame_info_table
}
%endif
# 128 bit long double support was introduced with GCC 4.3.0 to 64bit
# and with GCC 4.4.0 to 32bit. These lines make the symbols to get
# a @@GCC_4.3.0 or @@GCC_4.4.0 attached.
%exclude {
__addtf3
__divtc3
__divtf3
__eqtf2
__extenddftf2
__extendsftf2
__extendxftf2
__fixtfdi
__fixtfsi
__fixtfti
__fixunstfdi
__fixunstfsi
__fixunstfti
__floatditf
__floatsitf
__floattitf
__floatunditf
__floatunsitf
__floatuntitf
__getf2
__gttf2
__letf2
__lttf2
__multc3
__multf3
__negtf2
__netf2
__powitf2
__subtf3
__trunctfdf2
__trunctfsf2
__trunctfxf2
__unordtf2
}
%ifdef __x86_64__
# Those symbols had improper versions when they were added to gcc 4.3.0.
# We corrected the default version to GCC_4.3.0. But we keep the old
# version for backward binary compatibility.
GCC_3.0 {
__gttf2
__lttf2
__netf2
}
GCC_4.0.0 {
__divtc3
__multc3
__powitf2
}
GCC_4.3.0 {
__addtf3
__divtc3
__divtf3
__eqtf2
__extenddftf2
__extendsftf2
__extendxftf2
__fixtfdi
__fixtfsi
__fixtfti
__fixunstfdi
__fixunstfsi
__fixunstfti
__floatditf
__floatsitf
__floattitf
__floatunditf
__floatunsitf
__floatuntitf
__getf2
__gttf2
__letf2
__lttf2
__multc3
__multf3
__negtf2
__netf2
__powitf2
__subtf3
__trunctfdf2
__trunctfsf2
__trunctfxf2
__unordtf2
}
GCC_4.8.0 {
__cpu_model
}
%else
GCC_4.4.0 {
__addtf3
__copysigntf3
__divtc3
__divtf3
__eqtf2
__extenddftf2
__extendsftf2
__fabstf2
__fixtfdi
__fixtfsi
__fixunstfdi
__fixunstfsi
__floatditf
__floatsitf
__floatunditf
__floatunsitf
__getf2
__gttf2
__letf2
__lttf2
__multc3
__multf3
__negtf2
__netf2
__powitf2
__subtf3
__trunctfdf2
__trunctfsf2
__trunctfxf2
__unordtf2
}
GCC_4.5.0 {
__extendxftf2
}
GCC_4.8.0 {
__cpu_model
}
%endif