mirror of
https://sourceware.org/git/glibc.git
synced 2026-10-24 01:33:52 +03:00
These are a grab bag of changes where the testsuite was using internal symbols of some variety, but this was straightforward to fix, and the fixed code should work with or without the change to compile the testsuite under _ISOMAC. Four of these are just more #include adjustments, but I want to highlight sysdeps/powerpc/fpu/tst-setcontext-fpscr.c, which appears to have been written before the advent of sys/auxv.h. I think a big chunk of this file could be replaced by a simple call to getauxval, but I'll let someone who actually has a powerpc machine to test on do that. dlfcn/tst-dladdr.c was including ldsodefs.h just so it could use DL_LOOKUP_ADDRESS to print an additional diagnostic; as requested by Carlos, I have removed this. math/test-misc.c was using #ifndef NO_LONG_DOUBLE, which is an internal configuration macro, to decide whether to do certain tests involving 'long double'. I changed the test to #if LDBL_MANT_DIG > DBL_MANT_DIG instead, which uses only public float.h macros and is equivalent on all supported platforms. (Note that NO_LONG_DOUBLE doesn't mean 'the compiler doesn't support long double', it means 'long double is the same as double'.) tst-writev.c has a configuration macro 'ARTIFICIAL_LIMIT' that the Makefiles are expected to define, and sysdeps/unix/sysv/linux/Makefile was using the internal __getpagesize in the definition; changed to sysconf(_SC_PAGESIZE) which is the POSIX equivalent. ia64-linux doesn't supply 'clone', only '__clone2', which is not defined in the public headers(!) All the other clone tests have local extern declarations of __clone2, but tst-clone.c doesn't; it was getting away with this because include/sched.h does declare __clone2. * nss/tst-cancel-getpwuid_r.c: Include nss.h. * string/strcasestr.c: No need to include config.h. * sysdeps/powerpc/fpu/tst-setcontext-fpscr.c: Include sys/auxv.h. Don't include sysdep.h. * sysdeps/powerpc/tst-set_ppr.c: Don't include dl-procinfo.h. * dlfcn/tst-dladdr.c: Don't include ldsodefs.h. Don't use DL_LOOKUP_ADDRESS. * math/test-misc.c: Instead of testing NO_LONG_DOUBLE, test whether LDBL_MANT_DIG is greater than DBL_MANT_DIG. * sysdeps/unix/sysv/linux/Makefile (CFLAGS-tst-writev.c): Use sysconf (_SC_PAGESIZE) instead of __getpagesize in definition of ARTIFICIAL_LIMIT. * sysdeps/unix/sysv/linux/tst-clone.c [__ia64__]: Add extern declaration of __clone2.
206 lines
6.6 KiB
Makefile
206 lines
6.6 KiB
Makefile
ifeq ($(subdir),csu)
|
|
sysdep_routines += errno-loc
|
|
endif
|
|
|
|
ifeq ($(subdir),assert)
|
|
CFLAGS-assert.c += -DFATAL_PREPARE_INCLUDE='<fatal-prepare.h>'
|
|
CFLAGS-assert-perr.c += -DFATAL_PREPARE_INCLUDE='<fatal-prepare.h>'
|
|
endif
|
|
|
|
ifeq ($(subdir),malloc)
|
|
CFLAGS-malloc.c += -DMORECORE_CLEARS=2
|
|
endif
|
|
|
|
ifeq ($(subdir),misc)
|
|
include $(firstword $(wildcard $(sysdirs:=/sysctl.mk)))
|
|
|
|
sysdep_routines += clone umount umount2 readahead \
|
|
setfsuid setfsgid epoll_pwait signalfd \
|
|
eventfd eventfd_read eventfd_write prlimit \
|
|
personality
|
|
|
|
CFLAGS-gethostid.c = -fexceptions
|
|
CFLAGS-tst-writev.c += "-DARTIFICIAL_LIMIT=(0x80000000-sysconf(_SC_PAGESIZE))"
|
|
|
|
# Note that bits/mman-linux.h is listed here though the file lives in the
|
|
# top-level bits/ subdirectory instead of here in sysdeps/.../linux/bits/.
|
|
# That is just so that other (non-Linux) configurations for whom the
|
|
# bits/mman-linux.h definitions work well do not have to duplicate the
|
|
# contents of the file. The file must still be listed in sysdep_headers
|
|
# here and in any non-Linux configuration that uses it; other
|
|
# configurations will not install the file.
|
|
sysdep_headers += sys/mount.h sys/acct.h sys/sysctl.h \
|
|
sys/klog.h \
|
|
sys/user.h sys/prctl.h \
|
|
sys/kd.h sys/soundcard.h sys/vt.h \
|
|
sys/quota.h sys/fsuid.h \
|
|
scsi/sg.h scsi/scsi.h scsi/scsi_ioctl.h sys/pci.h \
|
|
sys/ultrasound.h sys/raw.h sys/personality.h sys/epoll.h \
|
|
bits/a.out.h sys/inotify.h sys/signalfd.h sys/eventfd.h \
|
|
sys/timerfd.h sys/fanotify.h bits/eventfd.h bits/inotify.h \
|
|
bits/signalfd.h bits/timerfd.h bits/epoll.h \
|
|
bits/socket_type.h bits/syscall.h bits/sysctl.h \
|
|
bits/mman-linux.h
|
|
|
|
tests += tst-clone tst-clone2 tst-fanotify tst-personality tst-quota \
|
|
tst-sync_file_range
|
|
|
|
# Generate the list of SYS_* macros for the system calls (__NR_* macros).
|
|
|
|
# If there is more than one syscall list for different architecture
|
|
# variants, the CPU/Makefile defines abi-variants to be a list of names
|
|
# for those variants (e.g. 32 64), and, for each variant, defines
|
|
# abi-$(variant)-options to be compiler options to cause <asm/unistd.h>
|
|
# to define the desired list of syscalls and abi-$(variant)-condition to
|
|
# be the condition for those options to use in a C #if condition.
|
|
# abi-includes may be defined to a list of headers to include
|
|
# in the generated header, if the default does not suffice.
|
|
#
|
|
# The generated header is compiled with `-ffreestanding' to avoid any
|
|
# circular dependencies against the installed implementation headers.
|
|
# Such a dependency would require the implementation header to be
|
|
# installed before the generated header could be built (See bug 15711).
|
|
# In current practice the generated header dependencies do not include
|
|
# any of the implementation headers removed by the use of `-ffreestanding'.
|
|
|
|
$(objpfx)bits/syscall%h $(objpfx)bits/syscall%d: ../sysdeps/unix/sysv/linux/sys/syscall.h
|
|
$(make-target-directory)
|
|
{ \
|
|
echo '/* Generated at libc build time from kernel syscall list. */';\
|
|
echo ''; \
|
|
echo '#ifndef _SYSCALL_H'; \
|
|
echo '# error "Never use <bits/syscall.h> directly; include <sys/syscall.h> instead."'; \
|
|
echo '#endif'; \
|
|
echo ''; \
|
|
$(foreach h,$(abi-includes), echo '#include <$(h)>';) \
|
|
echo ''; \
|
|
$(if $(abi-variants), \
|
|
$(foreach v,$(abi-variants),\
|
|
$(CC) -ffreestanding -E -MD -MP -MF $(@:.h=.d)-t$(v) -MT '$(@:.d=.h) $(@:.h=.d)' \
|
|
-x c $(sysincludes) $< $(abi-$(v)-options) \
|
|
-D_LIBC -dM | \
|
|
sed -n 's@^#define __NR_\([^ ]*\) .*$$@#define SYS_\1 __NR_\1@p' | \
|
|
LC_ALL=C sort > $(@:.d=.h).new$(v); \
|
|
$(if $(abi-$(v)-condition),\
|
|
echo '#if $(abi-$(v)-condition)';) \
|
|
cat $(@:.d=.h).new$(v); \
|
|
$(if $(abi-$(v)-condition),echo '#endif';) \
|
|
rm -f $(@:.d=.h).new$(v); \
|
|
), \
|
|
$(CC) -ffreestanding -E -MD -MP -MF $(@:.h=.d)-t$(v) -MT '$(@:.d=.h) $(@:.h=.d)' \
|
|
-x c $(sysincludes) $< \
|
|
-D_LIBC -dM | \
|
|
sed -n 's@^#define __NR_\([^ ]*\) .*$$@#define SYS_\1 __NR_\1@p' | \
|
|
LC_ALL=C sort;) \
|
|
} > $(@:.d=.h).new
|
|
mv -f $(@:.d=.h).new $(@:.d=.h)
|
|
ifdef abi-variants
|
|
ifneq (,$(objpfx))
|
|
sed $(sed-remove-objpfx) \
|
|
$(foreach v,$(abi-variants),$(@:.h=.d)-t$(v)) > $(@:.h=.d)-t3
|
|
else
|
|
cat $(foreach v,$(abi-variants),$(@:.h=.d)-t$(v)) \
|
|
> $(@:.h=.d)-t3
|
|
endif
|
|
rm -f $(foreach v,$(abi-variants),$(@:.h=.d)-t$(v))
|
|
mv -f $(@:.h=.d)-t3 $(@:.h=.d)
|
|
else
|
|
mv -f $(@:.h=.d)-t $(@:.h=.d)
|
|
endif
|
|
|
|
ifndef no_deps
|
|
# Get the generated list of dependencies (probably /usr/include/asm/unistd.h).
|
|
-include $(objpfx)bits/syscall.d
|
|
endif
|
|
generated += bits/syscall.h bits/syscall.d
|
|
endif
|
|
|
|
ifeq ($(subdir),time)
|
|
sysdep_headers += sys/timex.h bits/timex.h
|
|
|
|
sysdep_routines += ntp_gettime ntp_gettimex
|
|
endif
|
|
|
|
ifeq ($(subdir),socket)
|
|
sysdep_headers += net/if_ppp.h net/ppp-comp.h \
|
|
net/ppp_defs.h net/if_arp.h net/route.h net/ethernet.h \
|
|
net/if_slip.h net/if_packet.h net/if_shaper.h
|
|
sysdep_routines += cmsg_nxthdr
|
|
CFLAGS-recvmmsg.c = -fexceptions -fasynchronous-unwind-tables
|
|
CFLAGS-sendmmsg.c = -fexceptions -fasynchronous-unwind-tables
|
|
endif
|
|
|
|
ifeq ($(subdir),sunrpc)
|
|
sysdep_headers += nfs/nfs.h
|
|
endif
|
|
|
|
ifeq ($(subdir),termios)
|
|
sysdep_headers += termio.h
|
|
endif
|
|
|
|
ifeq ($(subdir),posix)
|
|
sysdep_headers += bits/initspin.h
|
|
|
|
sysdep_routines += sched_getcpu
|
|
|
|
tests += tst-affinity tst-affinity-pid
|
|
|
|
CFLAGS-fork.c = $(libio-mtsafe)
|
|
CFLAGS-getpid.o = -fomit-frame-pointer
|
|
CFLAGS-getpid.os = -fomit-frame-pointer
|
|
endif
|
|
|
|
ifeq ($(subdir),inet)
|
|
sysdep_headers += netinet/if_fddi.h netinet/if_tr.h \
|
|
netipx/ipx.h netash/ash.h netax25/ax25.h netatalk/at.h \
|
|
netrom/netrom.h netpacket/packet.h netrose/rose.h \
|
|
neteconet/ec.h netiucv/iucv.h
|
|
sysdep_routines += netlink_assert_response
|
|
endif
|
|
|
|
# Don't compile the ctype glue code, since there is no old non-GNU C library.
|
|
inhibit-glue = yes
|
|
|
|
ifeq ($(subdir),dirent)
|
|
sysdep_routines += getdirentries getdirentries64
|
|
endif
|
|
|
|
ifeq ($(subdir),nis)
|
|
CFLAGS-ypclnt.c = -DUSE_BINDINGDIR=1
|
|
endif
|
|
|
|
ifeq ($(subdir),io)
|
|
sysdep_routines += xstatconv internal_statvfs internal_statvfs64 \
|
|
sync_file_range fallocate fallocate64
|
|
sysdep_headers += bits/fcntl-linux.h
|
|
|
|
tests += tst-fallocate tst-fallocate64
|
|
endif
|
|
|
|
ifeq ($(subdir),elf)
|
|
sysdep-rtld-routines += dl-brk dl-sbrk dl-getcwd dl-openat64 dl-opendir \
|
|
dl-fxstatat64
|
|
|
|
libof-lddlibc4 = lddlibc4
|
|
|
|
others += pldd
|
|
install-bin += pldd
|
|
$(objpfx)pldd: $(objpfx)xmalloc.o
|
|
endif
|
|
|
|
ifeq ($(subdir),rt)
|
|
CFLAGS-mq_send.c += -fexceptions
|
|
CFLAGS-mq_receive.c += -fexceptions
|
|
endif
|
|
|
|
ifeq ($(subdir),nscd)
|
|
sysdep-CFLAGS += -DHAVE_EPOLL -DHAVE_SENDFILE -DHAVE_INOTIFY -DHAVE_NETLINK
|
|
CFLAGS-gai.c += -DNEED_NETLINK
|
|
endif
|
|
|
|
ifeq ($(subdir),nptl)
|
|
tests += tst-setgetname tst-align-clone tst-getpid1 \
|
|
tst-thread-affinity-pthread tst-thread-affinity-pthread2 \
|
|
tst-thread-affinity-sched
|
|
endif
|