mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-23 01:33:36 +08:00
This is update for configure, build and install of vector math library.
Installation of libm.so as linker script only in case of libmvec.so build. 2015-05-14 Andrew Senkevich <andrew.n.senkevich@gmail.com> * Makeconfig (rpath-dirs, all-subdirs): Added mathvec folder. (libmvec): New variable. * configure.ac: Added option for mathvec build. * configure: Regenerated. * mathvec/Depend: New file. * mathvec/Makefile: New file. * shlib-versions: Added libmvec. * math/Makefile: Added rule for libm.so installation.
This commit is contained in:
parent
202d48dab9
commit
5695d46f5d
@ -1,5 +1,14 @@
|
||||
2015-05-14 Andrew Senkevich <andrew.senkevich@intel.com>
|
||||
|
||||
* Makeconfig (rpath-dirs, all-subdirs): Added mathvec folder.
|
||||
(libmvec): New variable.
|
||||
* configure.ac: Added option for mathvec build.
|
||||
* configure: Regenerated.
|
||||
* mathvec/Depend: New file.
|
||||
* mathvec/Makefile: New file.
|
||||
* shlib-versions: Added libmvec.
|
||||
* math/Makefile: Added rule for libm.so installation.
|
||||
|
||||
* bits/math-vector.h: New file.
|
||||
* bits/libm-simd-decl-stubs.h: New header.
|
||||
* math/Makefile (headers): Added new header
|
||||
|
@ -498,7 +498,7 @@ link-libc = $(link-libc-rpath-link) $(link-libc-before-gnulib) $(gnulib)
|
||||
link-libc-tests = $(link-libc-tests-rpath-link) \
|
||||
$(link-libc-before-gnulib) $(gnulib-tests)
|
||||
# This is how to find at build-time things that will be installed there.
|
||||
rpath-dirs = math elf dlfcn nss nis rt resolv crypt
|
||||
rpath-dirs = math elf dlfcn nss nis rt resolv crypt mathvec
|
||||
rpath-link = \
|
||||
$(common-objdir):$(subst $(empty) ,:,$(patsubst ../$(subdir),.,$(rpath-dirs:%=$(common-objpfx)%)))
|
||||
else
|
||||
@ -1074,8 +1074,10 @@ endif
|
||||
|
||||
ifeq ($(build-shared),yes)
|
||||
libm = $(common-objpfx)math/libm.so$(libm.so-version)
|
||||
libmvec = $(common-objpfx)mathvec/libmvec.so$(libmvec.so-version)
|
||||
else
|
||||
libm = $(common-objpfx)math/libm.a
|
||||
libmvec = $(common-objpfx)mathvec/libmvec.a
|
||||
endif
|
||||
|
||||
# These are the subdirectories containing the library source. The order
|
||||
@ -1085,7 +1087,7 @@ all-subdirs = csu assert ctype locale intl catgets math setjmp signal \
|
||||
stdlib stdio-common libio malloc string wcsmbs time dirent \
|
||||
grp pwd posix io termios resource misc socket sysvipc gmon \
|
||||
gnulib iconv iconvdata wctype manual shadow gshadow po argp \
|
||||
crypt localedata timezone rt conform debug \
|
||||
crypt localedata timezone rt conform debug mathvec \
|
||||
$(add-on-subdirs) dlfcn elf
|
||||
|
||||
ifndef avoid-generated
|
||||
|
17
configure
vendored
17
configure
vendored
@ -777,6 +777,7 @@ enable_systemtap
|
||||
enable_build_nscd
|
||||
enable_nscd
|
||||
enable_pt_chown
|
||||
enable_mathvec
|
||||
with_cpu
|
||||
'
|
||||
ac_precious_vars='build_alias
|
||||
@ -1441,6 +1442,8 @@ Optional Features:
|
||||
--disable-build-nscd disable building and installing the nscd daemon
|
||||
--disable-nscd library functions will not contact the nscd daemon
|
||||
--enable-pt_chown Enable building and installing pt_chown
|
||||
--enable-mathvec Enable building and installing mathvec [default
|
||||
depends on architecture]
|
||||
|
||||
Optional Packages:
|
||||
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
|
||||
@ -3845,6 +3848,14 @@ gnu*)
|
||||
;;
|
||||
esac
|
||||
|
||||
# Check whether --enable-mathvec was given.
|
||||
if test "${enable_mathvec+set}" = set; then :
|
||||
enableval=$enable_mathvec; build_mathvec=$enableval
|
||||
else
|
||||
build_mathvec=notset
|
||||
fi
|
||||
|
||||
|
||||
# We keep the original values in `$config_*' and never modify them, so we
|
||||
# can write them unchanged into config.make. Everything else uses
|
||||
# $machine, $vendor, and $os, and changes them whenever convenient.
|
||||
@ -7215,6 +7226,12 @@ $as_echo "running configure fragment for $dir" >&6; }
|
||||
fi
|
||||
done
|
||||
|
||||
if test x"$build_mathvec" = xnotset; then
|
||||
build_mathvec=no
|
||||
fi
|
||||
config_vars="$config_vars
|
||||
build-mathvec = $build_mathvec"
|
||||
|
||||
|
||||
|
||||
|
||||
|
11
configure.ac
11
configure.ac
@ -381,6 +381,12 @@ gnu*)
|
||||
;;
|
||||
esac
|
||||
|
||||
AC_ARG_ENABLE([mathvec],
|
||||
[AS_HELP_STRING([--enable-mathvec],
|
||||
[Enable building and installing mathvec @<:@default depends on architecture@:>@])],
|
||||
[build_mathvec=$enableval],
|
||||
[build_mathvec=notset])
|
||||
|
||||
# We keep the original values in `$config_*' and never modify them, so we
|
||||
# can write them unchanged into config.make. Everything else uses
|
||||
# $machine, $vendor, and $os, and changes them whenever convenient.
|
||||
@ -1994,6 +2000,11 @@ for dir in $sysnames; do
|
||||
fi
|
||||
done
|
||||
|
||||
if test x"$build_mathvec" = xnotset; then
|
||||
build_mathvec=no
|
||||
fi
|
||||
LIBC_CONFIG_VAR([build-mathvec], [$build_mathvec])
|
||||
|
||||
AC_SUBST(libc_extra_cflags)
|
||||
AC_SUBST(libc_extra_cppflags)
|
||||
|
||||
|
@ -86,6 +86,22 @@ generated += $(foreach s,.c .S l.c l.S f.c f.S,$(calls:s_%=m_%$s))
|
||||
routines = $(calls) $(calls:=f) $(long-c-$(long-double-fcts))
|
||||
long-c-yes = $(calls:=l)
|
||||
|
||||
ifeq ($(build-mathvec),yes)
|
||||
# We need to install libm.so as linker script
|
||||
# for more comfortable use of vector math library.
|
||||
install-lib-ldscripts := libm.so
|
||||
install_subdir: $(inst_libdir)/libm.so
|
||||
$(inst_libdir)/libm.so: $(common-objpfx)format.lds \
|
||||
$(libm) \
|
||||
$(libmvec) \
|
||||
$(+force)
|
||||
(echo '/* GNU ld script'; echo '*/';\
|
||||
cat $<; \
|
||||
echo 'GROUP ( $(slibdir)/libm.so$(libm.so-version) ' \
|
||||
'AS_NEEDED ( $(slibdir)/libmvec.so$(libmvec.so-version) ) )' \
|
||||
) > $@
|
||||
endif
|
||||
|
||||
# Rules for the test suite.
|
||||
tests = test-matherr test-fenv atest-exp atest-sincos atest-exp2 basic-test \
|
||||
test-misc test-fpucw test-fpucw-ieee tst-definitions test-tgmath \
|
||||
|
1
mathvec/Depend
Normal file
1
mathvec/Depend
Normal file
@ -0,0 +1 @@
|
||||
math
|
35
mathvec/Makefile
Normal file
35
mathvec/Makefile
Normal file
@ -0,0 +1,35 @@
|
||||
# Copyright (C) 2014-2015 Free Software Foundation, Inc.
|
||||
# This file is part of the GNU C Library.
|
||||
|
||||
# The GNU C Library is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU Lesser General Public
|
||||
# License as published by the Free Software Foundation; either
|
||||
# version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
# The GNU C Library is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# Lesser General Public License for more details.
|
||||
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with the GNU C Library; if not, see
|
||||
# <http://www.gnu.org/licenses/>.
|
||||
|
||||
# Makefile for the vector math library.
|
||||
|
||||
subdir := mathvec
|
||||
|
||||
include ../Makeconfig
|
||||
|
||||
ifeq ($(build-mathvec),yes)
|
||||
extra-libs := libmvec
|
||||
extra-libs-others = $(extra-libs)
|
||||
|
||||
libmvec-routines = $(strip $(libmvec-support))
|
||||
|
||||
$(objpfx)libmvec.so: $(libm)
|
||||
endif
|
||||
|
||||
# Rules for the test suite are in math directory.
|
||||
|
||||
include ../Rules
|
@ -71,3 +71,6 @@ libanl=1
|
||||
# This defines the libgcc soname version this glibc is to load for
|
||||
# asynchronous cancellation to work correctly.
|
||||
libgcc_s=1
|
||||
|
||||
# The vector math library
|
||||
libmvec=1
|
||||
|
Loading…
Reference in New Issue
Block a user