This enables building on Mac OS and FreeBSD by adding support to their variants of the sed utility. diff -urN gcc-5.2.0.orig/libgcc/config/t-hardfp gcc-5.2.0/libgcc/config/t-hardfp --- gcc-5.2.0.orig/libgcc/config/t-hardfp 2015-01-05 04:33:28.000000000 -0800 +++ gcc-8.1.0/libgcc/config/t-hardfp 2016-04-06 12:04:51.000000000 -0700 @@ -59,21 +59,52 @@ hardfp_func_list := $(filter-out $(hardfp_exclusions),$(hardfp_func_list)) +HOST_OS ?= $(shell uname) + # Regexp for matching a floating-point mode. +ifeq ($(HOST_OS), Darwin) +hardfp_mode_regexp := $(shell echo $(hardfp_float_modes) | sed 's/ /|/g') +else +ifeq ($(HOST_OS), FreeBSD) +hardfp_mode_regexp := $(shell echo $(hardfp_float_modes) | sed 's/ /|/g') +else hardfp_mode_regexp := $(shell echo $(hardfp_float_modes) | sed 's/ /\\|/g') +endif +endif # Regexp for matching the end of a function name, after the last # floating-point mode. +ifeq ($(HOST_OS), Darwin) +hardfp_suffix_regexp := $(shell echo $(hardfp_int_modes) 2 3 | sed 's/ /|/g') +else +ifeq ($(HOST_OS), FreeBSD) +hardfp_suffix_regexp := $(shell echo $(hardfp_int_modes) 2 3 | sed 's/ /|/g') +else hardfp_suffix_regexp := $(shell echo $(hardfp_int_modes) 2 3 | sed 's/ /\\|/g') +endif +endif # Add -D options to define: # FUNC: the function name (e.g. __addsf3) # OP: the function name without the leading __ and with the last # floating-point mode removed (e.g. add3) # TYPE: the last floating-point mode (e.g. sf) + +ifeq ($(HOST_OS), Darwin) hardfp_defines_for = \ $(shell echo $1 | \ - sed 's/\(.*\)\($(hardfp_mode_regexp)\)\($(hardfp_suffix_regexp)\|\)$$/-DFUNC=__& -DOP_\1\3 -DTYPE=\2/') + sed -E 's/(.*)($(hardfp_mode_regexp))($(hardfp_suffix_regexp)|.*)$$/-DFUNC=__& -DOP_\1\3 -DTYPE=\2/') +else +ifeq ($(HOST_OS), FreeBSD) +hardfp_defines_for = \ + $(shell echo $1 | \ + sed -r 's/(.*)($(hardfp_mode_regexp))($(hardfp_suffix_regexp)|.*)$$/-DFUNC=__& -DOP_\1\3 -DTYPE=\2/') +else +hardfp_defines_for = \ + $(shell echo $1 | \ + sed 's/\(.*\)\($(hardfp_mode_regexp)\)\($(hardfp_suffix_regexp)\|\)$$/-DFUNC=__& -DOP_\1\3 -DTYPE=\2/') +endif +endif hardfp-o = $(patsubst %,%$(objext),$(hardfp_func_list)) $(hardfp-o): %$(objext): $(srcdir)/config/hardfp.c