diff options
Diffstat (limited to 'libatomic')
-rw-r--r-- | libatomic/ChangeLog | 8 | ||||
-rw-r--r-- | libatomic/Makefile.am | 8 | ||||
-rw-r--r-- | libatomic/Makefile.in | 109 | ||||
-rwxr-xr-x | libatomic/configure | 20 | ||||
-rw-r--r-- | libatomic/configure.ac | 3 | ||||
-rw-r--r-- | libatomic/configure.tgt | 4 |
6 files changed, 101 insertions, 51 deletions
diff --git a/libatomic/ChangeLog b/libatomic/ChangeLog index f0901b8..6716f04 100644 --- a/libatomic/ChangeLog +++ b/libatomic/ChangeLog @@ -1,3 +1,11 @@ +2025-05-22 Alexandre Oliva <oliva@adacore.com> + + * configure.tgt: Set partial_libatomic on *-*-vxworks*. + * configure.ac (PARTIAL_VXWORKS): New AM_CONDITIONAL. + * Makefile.am (libatomic_la_SOURCES): Select few sources for + PARTIAL_VXWORKS. + * configure, Makefile.in: Rebuilt. + 2025-05-09 David Malcolm <dmalcolm@redhat.com> PR other/116792 diff --git a/libatomic/Makefile.am b/libatomic/Makefile.am index 0f1a715..65dff6e 100644 --- a/libatomic/Makefile.am +++ b/libatomic/Makefile.am @@ -70,11 +70,16 @@ endif libatomic_la_LDFLAGS = $(libatomic_version_info) $(libatomic_version_script) \ $(lt_host_flags) $(libatomic_darwin_rpath) + +SIZES = @SIZES@ + +if PARTIAL_VXWORKS +libatomic_la_SOURCES = fenv.c fence.c flag.c +else libatomic_la_SOURCES = gload.c gstore.c gcas.c gexch.c glfree.c lock.c init.c \ fenv.c fence.c flag.c SIZEOBJS = load store cas exch fadd fsub fand fior fxor fnand tas -SIZES = @SIZES@ EXTRA_libatomic_la_SOURCES = $(addsuffix _n.c,$(SIZEOBJS)) libatomic_la_DEPENDENCIES = $(libatomic_la_LIBADD) $(libatomic_version_dep) @@ -152,6 +157,7 @@ endif if ARCH_AARCH64_LINUX libatomic_la_SOURCES += atomic_16.S endif +endif libatomic_convenience_la_SOURCES = $(libatomic_la_SOURCES) libatomic_convenience_la_LIBADD = $(libatomic_la_LIBADD) diff --git a/libatomic/Makefile.in b/libatomic/Makefile.in index 9798e7c..4344ac4 100644 --- a/libatomic/Makefile.in +++ b/libatomic/Makefile.in @@ -89,18 +89,18 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ -@ARCH_AARCH64_LINUX_TRUE@@HAVE_IFUNC_TRUE@am__append_1 = $(foreach s,$(SIZES),$(addsuffix _$(s)_1_.lo,$(SIZEOBJS))) -@ARCH_ARM_LINUX_TRUE@@HAVE_IFUNC_TRUE@am__append_2 = $(foreach \ -@ARCH_ARM_LINUX_TRUE@@HAVE_IFUNC_TRUE@ s,$(SIZES),$(addsuffix \ -@ARCH_ARM_LINUX_TRUE@@HAVE_IFUNC_TRUE@ _$(s)_1_.lo,$(SIZEOBJS))) \ -@ARCH_ARM_LINUX_TRUE@@HAVE_IFUNC_TRUE@ $(addsuffix \ -@ARCH_ARM_LINUX_TRUE@@HAVE_IFUNC_TRUE@ _8_2_.lo,$(SIZEOBJS)) \ -@ARCH_ARM_LINUX_TRUE@@HAVE_IFUNC_TRUE@ tas_1_2_.lo -@ARCH_I386_TRUE@@HAVE_IFUNC_TRUE@am__append_3 = $(addsuffix _8_1_.lo,$(SIZEOBJS)) -@ARCH_X86_64_TRUE@@HAVE_IFUNC_TRUE@am__append_4 = $(addsuffix _16_1_.lo,$(SIZEOBJS)) \ -@ARCH_X86_64_TRUE@@HAVE_IFUNC_TRUE@ $(addsuffix _16_2_.lo,$(SIZEOBJS)) - -@ARCH_AARCH64_LINUX_TRUE@am__append_5 = atomic_16.S +@ARCH_AARCH64_LINUX_TRUE@@HAVE_IFUNC_TRUE@@PARTIAL_VXWORKS_FALSE@am__append_1 = $(foreach s,$(SIZES),$(addsuffix _$(s)_1_.lo,$(SIZEOBJS))) +@ARCH_ARM_LINUX_TRUE@@HAVE_IFUNC_TRUE@@PARTIAL_VXWORKS_FALSE@am__append_2 = $(foreach \ +@ARCH_ARM_LINUX_TRUE@@HAVE_IFUNC_TRUE@@PARTIAL_VXWORKS_FALSE@ s,$(SIZES),$(addsuffix \ +@ARCH_ARM_LINUX_TRUE@@HAVE_IFUNC_TRUE@@PARTIAL_VXWORKS_FALSE@ _$(s)_1_.lo,$(SIZEOBJS))) \ +@ARCH_ARM_LINUX_TRUE@@HAVE_IFUNC_TRUE@@PARTIAL_VXWORKS_FALSE@ $(addsuffix \ +@ARCH_ARM_LINUX_TRUE@@HAVE_IFUNC_TRUE@@PARTIAL_VXWORKS_FALSE@ _8_2_.lo,$(SIZEOBJS)) \ +@ARCH_ARM_LINUX_TRUE@@HAVE_IFUNC_TRUE@@PARTIAL_VXWORKS_FALSE@ tas_1_2_.lo +@ARCH_I386_TRUE@@HAVE_IFUNC_TRUE@@PARTIAL_VXWORKS_FALSE@am__append_3 = $(addsuffix _8_1_.lo,$(SIZEOBJS)) +@ARCH_X86_64_TRUE@@HAVE_IFUNC_TRUE@@PARTIAL_VXWORKS_FALSE@am__append_4 = $(addsuffix _16_1_.lo,$(SIZEOBJS)) \ +@ARCH_X86_64_TRUE@@HAVE_IFUNC_TRUE@@PARTIAL_VXWORKS_FALSE@ $(addsuffix _16_2_.lo,$(SIZEOBJS)) + +@ARCH_AARCH64_LINUX_TRUE@@PARTIAL_VXWORKS_FALSE@am__append_5 = atomic_16.S subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ @@ -156,10 +156,14 @@ am__uninstall_files_from_dir = { \ } am__installdirs = "$(DESTDIR)$(toolexeclibdir)" LTLIBRARIES = $(noinst_LTLIBRARIES) $(toolexeclib_LTLIBRARIES) -@ARCH_AARCH64_LINUX_TRUE@am__objects_1 = atomic_16.lo -am_libatomic_la_OBJECTS = gload.lo gstore.lo gcas.lo gexch.lo \ - glfree.lo lock.lo init.lo fenv.lo fence.lo flag.lo \ - $(am__objects_1) +@ARCH_AARCH64_LINUX_TRUE@@PARTIAL_VXWORKS_FALSE@am__objects_1 = \ +@ARCH_AARCH64_LINUX_TRUE@@PARTIAL_VXWORKS_FALSE@ atomic_16.lo +@PARTIAL_VXWORKS_FALSE@am_libatomic_la_OBJECTS = gload.lo gstore.lo \ +@PARTIAL_VXWORKS_FALSE@ gcas.lo gexch.lo glfree.lo lock.lo \ +@PARTIAL_VXWORKS_FALSE@ init.lo fenv.lo fence.lo flag.lo \ +@PARTIAL_VXWORKS_FALSE@ $(am__objects_1) +@PARTIAL_VXWORKS_TRUE@am_libatomic_la_OBJECTS = fenv.lo fence.lo \ +@PARTIAL_VXWORKS_TRUE@ flag.lo $(am__objects_1) libatomic_la_OBJECTS = $(am_libatomic_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) @@ -169,8 +173,12 @@ libatomic_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(libatomic_la_LDFLAGS) $(LDFLAGS) -o $@ libatomic_convenience_la_DEPENDENCIES = $(libatomic_la_LIBADD) -am__objects_2 = gload.lo gstore.lo gcas.lo gexch.lo glfree.lo lock.lo \ - init.lo fenv.lo fence.lo flag.lo $(am__objects_1) +@PARTIAL_VXWORKS_FALSE@am__objects_2 = gload.lo gstore.lo gcas.lo \ +@PARTIAL_VXWORKS_FALSE@ gexch.lo glfree.lo lock.lo init.lo \ +@PARTIAL_VXWORKS_FALSE@ fenv.lo fence.lo flag.lo \ +@PARTIAL_VXWORKS_FALSE@ $(am__objects_1) +@PARTIAL_VXWORKS_TRUE@am__objects_2 = fenv.lo fence.lo flag.lo \ +@PARTIAL_VXWORKS_TRUE@ $(am__objects_1) am_libatomic_convenience_la_OBJECTS = $(am__objects_2) libatomic_convenience_la_OBJECTS = \ $(am_libatomic_convenience_la_OBJECTS) @@ -423,39 +431,44 @@ libatomic_version_info = -version-info $(libtool_VERSION) libatomic_la_LDFLAGS = $(libatomic_version_info) $(libatomic_version_script) \ $(lt_host_flags) $(libatomic_darwin_rpath) -libatomic_la_SOURCES = gload.c gstore.c gcas.c gexch.c glfree.c lock.c \ - init.c fenv.c fence.c flag.c $(am__append_5) -SIZEOBJS = load store cas exch fadd fsub fand fior fxor fnand tas -EXTRA_libatomic_la_SOURCES = $(addsuffix _n.c,$(SIZEOBJS)) -libatomic_la_DEPENDENCIES = $(libatomic_la_LIBADD) $(libatomic_version_dep) -empty = -space = $(empty) $(empty) -PAT_SPLIT = $(subst _,$(space),$(*F)) -PAT_BASE = $(word 1,$(PAT_SPLIT)) -PAT_N = $(word 2,$(PAT_SPLIT)) -PAT_S = $(word 3,$(PAT_SPLIT)) -IFUNC_DEF = -DIFUNC_ALT=$(PAT_S) -IFUNC_OPT = $(word $(PAT_S),$(IFUNC_OPTIONS)) -@AMDEP_TRUE@M_DEPS = -MT $@ -MD -MP -MF $(DEPDIR)/$(@F).Ppo -@AMDEP_FALSE@M_DEPS = -M_SIZE = -DN=$(PAT_N) -M_IFUNC = $(if $(PAT_S),$(IFUNC_DEF) $(IFUNC_OPT)) -M_FILE = $(PAT_BASE)_n.c +@PARTIAL_VXWORKS_FALSE@libatomic_la_SOURCES = gload.c gstore.c gcas.c \ +@PARTIAL_VXWORKS_FALSE@ gexch.c glfree.c lock.c init.c fenv.c \ +@PARTIAL_VXWORKS_FALSE@ fence.c flag.c $(am__append_5) +@PARTIAL_VXWORKS_TRUE@libatomic_la_SOURCES = fenv.c fence.c flag.c \ +@PARTIAL_VXWORKS_TRUE@ $(am__append_5) +@PARTIAL_VXWORKS_FALSE@SIZEOBJS = load store cas exch fadd fsub fand fior fxor fnand tas +@PARTIAL_VXWORKS_FALSE@EXTRA_libatomic_la_SOURCES = $(addsuffix _n.c,$(SIZEOBJS)) +@PARTIAL_VXWORKS_FALSE@libatomic_la_DEPENDENCIES = $(libatomic_la_LIBADD) $(libatomic_version_dep) +@PARTIAL_VXWORKS_FALSE@empty = +@PARTIAL_VXWORKS_FALSE@space = $(empty) $(empty) +@PARTIAL_VXWORKS_FALSE@PAT_SPLIT = $(subst _,$(space),$(*F)) +@PARTIAL_VXWORKS_FALSE@PAT_BASE = $(word 1,$(PAT_SPLIT)) +@PARTIAL_VXWORKS_FALSE@PAT_N = $(word 2,$(PAT_SPLIT)) +@PARTIAL_VXWORKS_FALSE@PAT_S = $(word 3,$(PAT_SPLIT)) +@PARTIAL_VXWORKS_FALSE@IFUNC_DEF = -DIFUNC_ALT=$(PAT_S) +@PARTIAL_VXWORKS_FALSE@IFUNC_OPT = $(word $(PAT_S),$(IFUNC_OPTIONS)) +@PARTIAL_VXWORKS_FALSE@@AMDEP_TRUE@M_DEPS = -MT $@ -MD -MP -MF $(DEPDIR)/$(@F).Ppo +@PARTIAL_VXWORKS_FALSE@@AMDEP_FALSE@M_DEPS = +@PARTIAL_VXWORKS_FALSE@M_SIZE = -DN=$(PAT_N) +@PARTIAL_VXWORKS_FALSE@M_IFUNC = $(if $(PAT_S),$(IFUNC_DEF) $(IFUNC_OPT)) +@PARTIAL_VXWORKS_FALSE@M_FILE = $(PAT_BASE)_n.c # The lack of explicit dependency on the source file means that VPATH cannot # work properly. Instead, perform this operation by hand. First, collect a # list of all .c files in the search path. -all_c_files := $(foreach dir,$(search_path),$(wildcard $(dir)/*.c)) +@PARTIAL_VXWORKS_FALSE@all_c_files := $(foreach dir,$(search_path),$(wildcard $(dir)/*.c)) # Then sort through them to find the one we want, and select the first. -M_SRC = $(firstword $(filter %/$(M_FILE), $(all_c_files))) -libatomic_la_LIBADD = $(foreach s,$(SIZES),$(addsuffix \ - _$(s)_.lo,$(SIZEOBJS))) $(am__append_1) $(am__append_2) \ - $(am__append_3) $(am__append_4) -@ARCH_AARCH64_LINUX_TRUE@@HAVE_IFUNC_TRUE@IFUNC_OPTIONS = -march=armv8-a+lse -@ARCH_ARM_LINUX_TRUE@@HAVE_IFUNC_TRUE@IFUNC_OPTIONS = -march=armv7-a+fp -DHAVE_KERNEL64 -@ARCH_I386_TRUE@@HAVE_IFUNC_TRUE@IFUNC_OPTIONS = -march=i586 -@ARCH_X86_64_TRUE@@HAVE_IFUNC_TRUE@IFUNC_OPTIONS = -mcx16 -mcx16 +@PARTIAL_VXWORKS_FALSE@M_SRC = $(firstword $(filter %/$(M_FILE), $(all_c_files))) +@PARTIAL_VXWORKS_FALSE@libatomic_la_LIBADD = $(foreach \ +@PARTIAL_VXWORKS_FALSE@ s,$(SIZES),$(addsuffix \ +@PARTIAL_VXWORKS_FALSE@ _$(s)_.lo,$(SIZEOBJS))) $(am__append_1) \ +@PARTIAL_VXWORKS_FALSE@ $(am__append_2) $(am__append_3) \ +@PARTIAL_VXWORKS_FALSE@ $(am__append_4) +@ARCH_AARCH64_LINUX_TRUE@@HAVE_IFUNC_TRUE@@PARTIAL_VXWORKS_FALSE@IFUNC_OPTIONS = -march=armv8-a+lse +@ARCH_ARM_LINUX_TRUE@@HAVE_IFUNC_TRUE@@PARTIAL_VXWORKS_FALSE@IFUNC_OPTIONS = -march=armv7-a+fp -DHAVE_KERNEL64 +@ARCH_I386_TRUE@@HAVE_IFUNC_TRUE@@PARTIAL_VXWORKS_FALSE@IFUNC_OPTIONS = -march=i586 +@ARCH_X86_64_TRUE@@HAVE_IFUNC_TRUE@@PARTIAL_VXWORKS_FALSE@IFUNC_OPTIONS = -mcx16 -mcx16 libatomic_convenience_la_SOURCES = $(libatomic_la_SOURCES) libatomic_convenience_la_LIBADD = $(libatomic_la_LIBADD) MULTISRCTOP = @@ -891,10 +904,10 @@ vpath % $(strip $(search_path)) @LIBAT_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBAT_BUILD_VERSIONED_SHLIB_TRUE@ $(libatomic_la_OBJECTS) $(libatomic_la_LIBADD) \ @LIBAT_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBAT_BUILD_VERSIONED_SHLIB_TRUE@ > $@ || (rm -f $@ ; exit 1) --include $(wildcard $(DEPDIR)/*.Ppo) +@PARTIAL_VXWORKS_FALSE@-include $(wildcard $(DEPDIR)/*.Ppo) -%_.lo: Makefile - $(LTCOMPILE) $(M_DEPS) $(M_SIZE) $(M_IFUNC) -c -o $@ $(M_SRC) +@PARTIAL_VXWORKS_FALSE@%_.lo: Makefile +@PARTIAL_VXWORKS_FALSE@ $(LTCOMPILE) $(M_DEPS) $(M_SIZE) $(M_IFUNC) -c -o $@ $(M_SRC) # Amend the automake generated all-multi rule to guarantee that all-multi # is not run in parallel with the %_.lo rules which generate $(DEPDIR)/*.Ppo diff --git a/libatomic/configure b/libatomic/configure index d579bab..67b3a63 100755 --- a/libatomic/configure +++ b/libatomic/configure @@ -656,6 +656,8 @@ LIBAT_BUILD_VERSIONED_SHLIB_FALSE LIBAT_BUILD_VERSIONED_SHLIB_TRUE OPT_LDFLAGS SECTION_LDFLAGS +PARTIAL_VXWORKS_FALSE +PARTIAL_VXWORKS_TRUE SYSROOT_CFLAGS_FOR_TARGET enable_aarch64_lse libtool_VERSION @@ -11456,7 +11458,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11459 "configure" +#line 11461 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -11562,7 +11564,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11565 "configure" +#line 11567 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -11932,11 +11934,21 @@ esac # Get target configury. +partial_libatomic= . ${srcdir}/configure.tgt if test -n "$UNSUPPORTED"; then as_fn_error $? "Configuration ${target} is unsupported." "$LINENO" 5 fi + if test "x$partial_libatomic" = "xvxworks"; then + PARTIAL_VXWORKS_TRUE= + PARTIAL_VXWORKS_FALSE='#' +else + PARTIAL_VXWORKS_TRUE='#' + PARTIAL_VXWORKS_FALSE= +fi + + # Write out the ifunc resolver arg type. cat >>confdefs.h <<_ACEOF @@ -15989,6 +16001,10 @@ if test -z "${ENABLE_DARWIN_AT_RPATH_TRUE}" && test -z "${ENABLE_DARWIN_AT_RPATH as_fn_error $? "conditional \"ENABLE_DARWIN_AT_RPATH\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi +if test -z "${PARTIAL_VXWORKS_TRUE}" && test -z "${PARTIAL_VXWORKS_FALSE}"; then + as_fn_error $? "conditional \"PARTIAL_VXWORKS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi if test -z "${LIBAT_BUILD_VERSIONED_SHLIB_TRUE}" && test -z "${LIBAT_BUILD_VERSIONED_SHLIB_FALSE}"; then as_fn_error $? "conditional \"LIBAT_BUILD_VERSIONED_SHLIB\" was never defined. diff --git a/libatomic/configure.ac b/libatomic/configure.ac index aafae71..01141f6 100644 --- a/libatomic/configure.ac +++ b/libatomic/configure.ac @@ -175,11 +175,14 @@ esac AC_SUBST(SYSROOT_CFLAGS_FOR_TARGET) # Get target configury. +partial_libatomic= . ${srcdir}/configure.tgt if test -n "$UNSUPPORTED"; then AC_MSG_ERROR([Configuration ${target} is unsupported.]) fi +AM_CONDITIONAL(PARTIAL_VXWORKS, test "x$partial_libatomic" = "xvxworks") + # Write out the ifunc resolver arg type. AC_DEFINE_UNQUOTED(IFUNC_RESOLVER_ARGS, $IFUNC_RESOLVER_ARGS, [Define ifunc resolver function argument.]) diff --git a/libatomic/configure.tgt b/libatomic/configure.tgt index 6db039d..606d249 100644 --- a/libatomic/configure.tgt +++ b/libatomic/configure.tgt @@ -185,6 +185,10 @@ case "${target}" in nvptx*-*-*) ;; + *-*-vxworks*) + partial_libatomic=vxworks + ;; + *) # Who are you? UNSUPPORTED=1 |