Makefile.in: Set EH mechanism to ZCX for FreeBSD.

2006-10-31  Thomas Quinot  <quinot@adacore.com>
	    Eric Botcazou  <ebotcazou@adacore.com>
	    Arnaud Charlet  <charlet@adacore.com>

	* Makefile.in: Set EH mechanism to ZCX for FreeBSD.
	(NO_REORDER_ADAFLAGS): New var defined to -fno-toplevel-reorder if
	possible.
	(a-except.o): Pass it to the compiler.
	(gnatlib-shared-vms): Removed -nostartfiles switch in link step.
	(LIBGNAT_TARGET_PAIRS for Windows): Avoid the use of the specific
	a-calend-mingw.adb version.

        * Makefile.rtl: Added s-dsaser.
	Add object entries for Ada.Calendar.[Arithmetic/Formatting/Time_Zones]
	(GNATRTL_TASKING_OBJS): Add Ada.Dispatching and
	Ada.Dispatching.Round_Robin.
	Added new unit Ada.Containers.Restricted_Bounded_Doubly_Linked_Lists

	* Make-lang.in: Remove all references to gt-ada-decl.h.
	Add concatenation (s-strops/s-sopco3/s-sopco4/s-sopco5) to compiler
	sources.
	Add dependency on ada/s-restri.o for GNAT1 and GNATBIND objects.
	Update dependencies.

	* system-freebsd-x86.ads: Make ZCX the default EH mechanism for FreeBSD

From-SVN: r118285
This commit is contained in:
Thomas Quinot 2006-10-31 19:02:00 +01:00 committed by Arnaud Charlet
parent 53973dcf9d
commit b8783398c1
4 changed files with 2333 additions and 1426 deletions

File diff suppressed because it is too large Load Diff

View File

@ -843,6 +843,7 @@ ifeq ($(strip $(filter-out %86 freebsd%,$(arch) $(osys))),)
mlib-tgt.adb<mlib-tgt-linux.adb
GNATLIB_SHARED = gnatlib-shared-dual
EH_MECHANISM=-gcc
THREADSLIB= -lc_r
GMEM_LIB = gmemlib
PREFIX_OBJS = $(PREFIX_REAL_OBJS)
@ -1197,7 +1198,6 @@ endif
ifeq ($(strip $(filter-out cygwin32% mingw32% pe,$(osys))),)
LIBGNAT_TARGET_PAIRS = \
a-calend.adb<a-calend-mingw.adb \
a-dirval.adb<a-dirval-mingw.adb \
a-excpol.adb<a-excpol-abort.adb \
a-intnam.ads<a-intnam-mingw.ads \
@ -1847,7 +1847,7 @@ gnatlib-shared-vms:
objdump --syms $(LIBGNAT_OBJS) $(GNATRTL_NONTASKING_OBJS) | \
$(SHLIB_SYMVEC) >> SYMVEC_$$$$.opt && \
echo "case_sensitive=NO" >> SYMVEC_$$$$.opt && \
../../xgcc -g -B../../ -nostartfiles -shared -shared-libgcc \
../../xgcc -g -B../../ -shared -shared-libgcc \
-o libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) libgnat.a \
sys\$$library:trace.exe \
--for-linker=/noinform \
@ -1857,7 +1857,7 @@ gnatlib-shared-vms:
objdump --syms $(GNATRTL_TASKING_OBJS) | \
$(SHLIB_SYMVEC) >> SYMVEC_$$$$.opt && \
echo "case_sensitive=NO" >> SYMVEC_$$$$.opt && \
../../xgcc -g -B../../ -nostartfiles -shared -shared-libgcc \
../../xgcc -g -B../../ -shared -shared-libgcc \
-o libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \
libgnarl.a libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \
sys\$$library:trace.exe \
@ -1921,8 +1921,8 @@ ADA_RTL_OBJ_DIR = $(libsubdir)/adalib
# force no sibling call optimization on s-traceb.o so the number of stack
# frames to be skipped when computing a call chain is not modified by
# optimization. However we can do that only when building the runtime
# (not the compiler) because the -fno-optimize-sibling-calls exists
# only in GCC 3.
# (not the compiler) because the -fno-optimize-sibling-calls option exists
# only in GCC 3 and above.
ifneq (,$(findstring xgcc,$(CC)))
NO_SIBLING_ADAFLAGS=-fno-optimize-sibling-calls
@ -1942,13 +1942,24 @@ s-tasdeb.o : s-tasdeb.adb s-tasdeb.ads
$(CC) -c $(ALL_ADAFLAGS) $(FORCE_DEBUG_ADAFLAGS) -O0 $(ADA_INCLUDES) \
$< $(OUTPUT_OPTION)
# force no function reordering on a-except.o because of the exclusion bounds
# mechanism (see the source file for more detailed information). However we
# can do that only when building the runtime (not the compiler) because the
# -fno-toplevel-reorder option exists only in GCC 4.2 and above.
ifneq (,$(findstring xgcc,$(CC)))
NO_REORDER_ADAFLAGS=-fno-toplevel-reorder
else
NO_REORDER_ADAFLAGS=
endif
# force debugging information on a-except.o so that it is always
# possible to set conditional breakpoints on exceptions.
# use -O1 otherwise gdb isn't able to get a full backtrace on mips targets.
a-except.o : a-except.adb a-except.ads
$(CC) -c $(ALL_ADAFLAGS) $(FORCE_DEBUG_ADAFLAGS) -O1 -fno-inline \
$(ADA_INCLUDES) $< $(OUTPUT_OPTION)
$(NO_REORDER_ADAFLAGS) $(ADA_INCLUDES) $< $(OUTPUT_OPTION)
# force debugging information on s-assert.o so that it is always
# possible to set breakpoint on assert failures.

View File

@ -26,6 +26,8 @@
# Objects needed only for tasking
GNATRTL_TASKING_OBJS= \
a-diroro$(objext) \
a-dispat$(objext) \
a-dynpri$(objext) \
a-interr$(objext) \
a-intsig$(objext) \
@ -75,8 +77,11 @@ GNATRTL_TASKING_OBJS= \
# Objects needed for non-tasking.
GNATRTL_NONTASKING_OBJS= \
a-calari$(objext) \
a-caldel$(objext) \
a-calend$(objext) \
a-calfor$(objext) \
a-catizo$(objext) \
a-cdlili$(objext) \
a-cgaaso$(objext) \
a-cgarso$(objext) \
@ -113,6 +118,7 @@ GNATRTL_NONTASKING_OBJS= \
a-crbltr$(objext) \
a-crbtgk$(objext) \
a-crbtgo$(objext) \
a-crdlli$(objext) \
a-cwila1$(objext) \
a-cwila9$(objext) \
a-decima$(objext) \
@ -397,6 +403,7 @@ GNATRTL_NONTASKING_OBJS= \
s-crtl$(objext) \
s-crc32$(objext) \
s-direio$(objext) \
s-dsaser$(objext) \
s-errrep$(objext) \
s-exctab$(objext) \
s-exnint$(objext) \

View File

@ -5,9 +5,9 @@
-- S Y S T E M --
-- --
-- S p e c --
-- (FreeBSD/x86 Version) --
-- (FreeBSD/x86 Version) --
-- --
-- Copyright (C) 1992-2005, Free Software Foundation, Inc. --
-- Copyright (C) 1992-2006, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@ -88,6 +88,7 @@ package System is
type Bit_Order is (High_Order_First, Low_Order_First);
Default_Bit_Order : constant Bit_Order := Low_Order_First;
pragma Warnings (Off, Default_Bit_Order); -- kill constant condition warning
-- Priority-related Declarations (RM D.1)
@ -133,7 +134,7 @@ private
Preallocated_Stacks : constant Boolean := False;
Signed_Zeros : constant Boolean := True;
Stack_Check_Default : constant Boolean := False;
Stack_Check_Probes : constant Boolean := False;
Stack_Check_Probes : constant Boolean := True;
Support_64_Bit_Divides : constant Boolean := True;
Support_Aggregates : constant Boolean := True;
Support_Composite_Assign : constant Boolean := True;
@ -141,8 +142,8 @@ private
Support_Long_Shifts : constant Boolean := True;
Suppress_Standard_Library : constant Boolean := False;
Use_Ada_Main_Program_Name : constant Boolean := False;
ZCX_By_Default : constant Boolean := False;
GCC_ZCX_Support : constant Boolean := False;
ZCX_By_Default : constant Boolean := True;
GCC_ZCX_Support : constant Boolean := True;
Front_End_ZCX_Support : constant Boolean := False;
-- Obsolete entries, to be removed eventually (bootstrap issues!)