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  <ging...@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
> 

Reply via email to