Ping [Patch]: split libgcc/config/ia64/t-ia64 in two

Tristan Gingold gingold@adacore.com
Thu Jan 5 11:22:00 GMT 2012


Ping for this patch.

Tristan.

On Dec 21, 2011, at 12:04 PM, Tristan Gingold wrote:

> Hi,
> 
> this patch fixes two build libgcc issues on VMS/ia64.
> 
> * Because VMS doesn't define LIBGCC2_HAS_TF_MODE, compatibility thunks shouldn't be compiled.  Otherwise, the shared libgcc library fails to build due to undefined symbols.
> 
> * As VMS isn't fully compliant with ELF, crtstuff.c is used for crtbegin/crtend.  This fact was last during the move from gcc/config/ia64 to libgcc/config/ia64.
> 
> Tested only on ia64-hp-openvms.
> 
> Ok for trunk ?
> 
> Tristan.
> 
> libgcc/
> 2011-12-21  Tristan Gingold  <gingold@adacore.com>
> 
> 	* config/ia64/t-ia64 (LIB1ASMFUNCS): Move backward
> 	compatibility thunks...
> 	(CUSTOM_CRTSTUFF, crtbegin.o, crtend.o)
> 	(crtbeginS.o, crtendS.o): ... and these to ...
> 	* config/ia64/t-ia64-elf: ... this new file.
> 	* config.host (ia64*-*-elf*, ia64*-*-freebsd*, ia64*-*-linux*)
> 	(ia64*-*-hpux*): Add ia64/t-ia64-elf in tmake_file.
> 
> index a30bf52..13b71b7 100644
> --- a/libgcc/config.host
> +++ b/libgcc/config.host
> @@ -639,23 +639,23 @@ i[34567]86-*-interix3*)
> 	;;
> ia64*-*-elf*)
> 	extra_parts="$extra_parts crtbeginS.o crtendS.o crtfastmath.o"
> -	tmake_file="ia64/t-ia64 ia64/t-eh-ia64 t-crtfm"
> +	tmake_file="ia64/t-ia64 ia64/t-ia64-elf ia64/t-eh-ia64 t-crtfm"
> 	;;
> ia64*-*-freebsd*)
> 	extra_parts="$extra_parts crtfastmath.o"
> -	tmake_file="$tmake_file ia64/t-ia64 ia64/t-eh-ia64 t-crtfm"
> +	tmake_file="$tmake_file ia64/t-ia64 ia64/t-ia64-elf ia64/t-eh-ia64 t-crtfm"
> 	;;
> ia64*-*-linux*)
> 	# Don't use crtbeginT.o from *-*-linux* default.
> 	extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtfastmath.o"
> -	tmake_file="$tmake_file ia64/t-ia64 t-crtfm t-softfp-tf ia64/t-softfp t-softfp ia64/t-softfp-compat ia64/t-eh-ia64 t-libunwind ia64/t-linux"
> +	tmake_file="$tmake_file ia64/t-ia64 ia64/t-ia64-elf t-crtfm t-softfp-tf ia64/t-softfp t-softfp ia64/t-softfp-compat ia64/t-eh-ia64 t-libunwind ia64/t-linux"
> 	if test x$with_system_libunwind != xyes ; then
> 		tmake_file="${tmake_file} t-libunwind-elf ia64/t-linux-libunwind"
> 	fi
> 	md_unwind_header=ia64/linux-unwind.h
> 	;;
> ia64*-*-hpux*)
> -	tmake_file="ia64/t-ia64 ia64/t-hpux t-slibgcc ia64/t-slibgcc-hpux t-slibgcc-hpux"
> +	tmake_file="ia64/t-ia64 ia64/t-ia64-elf ia64/t-hpux t-slibgcc ia64/t-slibgcc-hpux t-slibgcc-hpux"
> 	;;
> ia64-hp-*vms*)
> 	tmake_file="$tmake_file ia64/t-ia64 ia64/t-eh-ia64 ia64/t-vms t-slibgcc-vms"
> diff --git a/libgcc/config/ia64/t-ia64 b/libgcc/config/ia64/t-ia64
> index d1ec353..1776ddd 100644
> --- a/libgcc/config/ia64/t-ia64
> +++ b/libgcc/config/ia64/t-ia64
> @@ -8,8 +8,7 @@ LIB1ASMSRC    = ia64/lib1funcs.S
> LIB1ASMFUNCS  = __divxf3 __divdf3 __divsf3 \
> 	__divdi3 __moddi3 __udivdi3 __umoddi3 \
> 	__divsi3 __modsi3 __udivsi3 __umodsi3 __save_stack_nonlocal \
> -	__nonlocal_goto __restore_stack_nonlocal __trampoline \
> -	_fixtfdi _fixunstfdi _floatditf
> +	__nonlocal_goto __restore_stack_nonlocal __trampoline
> 
> # ??? Hack to get -P option used when compiling lib1funcs.S, because Intel
> # assembler does not accept # line number as a comment.
> @@ -17,20 +16,3 @@ LIB1ASMFUNCS  = __divxf3 __divdf3 __divsf3 \
> # C++ part of libgcc2, hence it had to be disabled.  Must find some other way
> # to support the Intel assembler.
> #LIBGCC2_DEBUG_CFLAGS = -g1 -P
> -
> -CUSTOM_CRTSTUFF = yes
> -
> -# Assemble startup files.
> -# FIXME: -I$(gcc_objdir) is necessary to find auto-host.h.  Really?
> -crtbegin.o: $(srcdir)/config/ia64/crtbegin.S
> -	$(CC) $(compile_deps) -I. -I$(gcc_objdir) -c -x assembler-with-cpp $<
> -crtend.o: $(srcdir)/config/ia64/crtend.S
> -	$(CC) $(compile_deps) -I. -I$(gcc_objdir) -c -x assembler-with-cpp $<
> -crtbeginS.o: $(srcdir)/config/ia64/crtbegin.S
> -	$(CC) $(compile_deps) -I. -I$(gcc_objdir) -c -x assembler-with-cpp \
> -		-o $@ -DSHARED $<
> -crtendS.o: $(srcdir)/config/ia64/crtend.S
> -	$(CC) $(compile_deps) -I. -I$(gcc_objdir) -c -x assembler-with-cpp \
> -		-o $@ -DSHARED $<
> -
> -SHLIB_MAPFILES += $(srcdir)/config/ia64/libgcc-ia64.ver
> diff --git a/libgcc/config/ia64/t-ia64-elf b/libgcc/config/ia64/t-ia64-elf
> new file mode 100644
> index 0000000..08784df
> --- /dev/null
> +++ b/libgcc/config/ia64/t-ia64-elf
> @@ -0,0 +1,20 @@
> +LIB1ASMFUNCS  += _fixtfdi _fixunstfdi _floatditf
> +
> +CUSTOM_CRTSTUFF = yes
> +
> +# Assemble startup files.
> +# FIXME: -I$(gcc_objdir) is necessary to find auto-host.h.  Really?
> +crtbegin.o: $(srcdir)/config/ia64/crtbegin.S
> +	$(CC) $(compile_deps) -I. -I$(gcc_objdir) -c -x assembler-with-cpp \
> +		-o $@ $<
> +crtend.o: $(srcdir)/config/ia64/crtend.S
> +	$(CC) $(compile_deps) -I. -I$(gcc_objdir) -c -x assembler-with-cpp \
> +		-o $@ $<
> +crtbeginS.o: $(srcdir)/config/ia64/crtbegin.S
> +	$(CC) $(compile_deps) -I. -I$(gcc_objdir) -c -x assembler-with-cpp \
> +		-o $@ -DSHARED $<
> +crtendS.o: $(srcdir)/config/ia64/crtend.S
> +	$(CC) $(compile_deps) -I. -I$(gcc_objdir) -c -x assembler-with-cpp \
> +		-o $@ -DSHARED $<
> +
> +SHLIB_MAPFILES += $(srcdir)/config/ia64/libgcc-ia64.ver
> 



More information about the Gcc-patches mailing list