Since vxworks' libc contains much of libatomic, in not-very-granular modules, building all of libatomic doesn't work very well.
However, some expected entry points are not present in libc, so arrange for libatomic to build only those missing bits. I'm putting this in as "build machinery"; please let me know in case of objections. for libatomic/ChangeLog * 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. --- libatomic/Makefile.am | 8 +++ libatomic/Makefile.in | 109 ++++++++++++++++++++++++++--------------------- libatomic/configure | 20 ++++++++- libatomic/configure.ac | 3 + libatomic/configure.tgt | 4 ++ 5 files changed, 93 insertions(+), 51 deletions(-) diff --git a/libatomic/Makefile.am b/libatomic/Makefile.am index 0f1a71560848a..65dff6ece9ff8 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 diff --git a/libatomic/configure b/libatomic/configure [omitted] diff --git a/libatomic/configure.ac b/libatomic/configure.ac index aafae71028d2d..01141f6437697 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 6db039d6e8bb6..606d249116af5 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 -- Alexandre Oliva, happy hacker https://blog.lx.oliva.nom.br/ Free Software Activist FSFLA co-founder GNU Toolchain Engineer More tolerance and less prejudice are key for inclusion and diversity. Excluding neuro-others for not behaving ""normal"" is *not* inclusive!