mirror of
				https://sourceware.org/git/glibc.git
				synced 2025-10-30 10:45:40 +03:00 
			
		
		
		
	It is enabled through a new rule, tests-y2038, which is built only
when the ABI supports the comapt 64-bit time_t (defined by the
header time64-compat.h, which also enables the creation of the
symbol Version for Linux).  It means the tests are not built
for ABI which already provide default 64-bit time_t.
The new rule already adds the required LFS and 64-bit time_t
compiler flags.
The current coverage is:
  * libc:
    - adjtime                       tst-adjtime-time64
    - adjtimex                      tst-adjtimex-time64
    - clock_adjtime                 tst-clock_adjtime-time64
    - clock_getres                  tst-clock-time64, tst-cpuclock1-time64
    - clock_gettime                 tst-clock-time64, tst-clock2-time64,
				    tst-cpuclock1-time64
    - clock_nanosleep               tst-clock_nanosleep-time64,
				    tst-cpuclock1-time64
    - clock_settime                 tst-clock2-time64
    - cnd_timedwait                 tst-cnd-timedwait-time64
    - ctime                         tst-ctime-time64
    - ctime_r                       tst-ctime-time64
    - difftime                      tst-difftime-time64
    - fstat                         tst-stat-time64
    - fstatat                       tst-stat-time64
    - futimens                      tst-futimens-time64
    - futimes                       tst-futimes-time64
    - futimesat                     tst-futimesat-time64
    - fts_*                         tst-fts-time64
    - getitimer                     tst-itimer-timer64
    - getrusage
    - gettimeofday                  tst-clock_nanosleep-time64
    - glob / globfree               tst-gnuglob64-time64
    - gmtime                        tst-gmtime-time64
    - gmtime_r                      tst-gmtime-time64
    - lstat                         tst-stat-time64
    - localtime                     tst-y2039-time64
    - localtime_t                   tst-y2039-time64
    - lutimes                       tst-lutimes-time64
    - mktime                        tst-mktime4-time64
    - mq_timedreceive               tst-mqueue{1248}-time64
    - mq_timedsend                  tst-mqueue{1248}-time64
    - msgctl                        test-sysvmsg-time64
    - mtx_timedlock                 tst-mtx-timedlock-time64
    - nanosleep                     tst-cpuclock{12}-time64,
				    tst-mqueue8-time64, tst-clock-time64
    - nftw / ftw                    ftwtest-time64
    - ntp_adjtime                   tst-ntp_adjtime-time64
    - ntp_gettime                   tst-ntp_gettime-time64
    - ntp_gettimex                  tst-ntp_gettimex-time64
    - ppoll                         tst-ppoll-time64
    - pselect                       tst-pselect-time64
    - pthread_clockjoin_np          tst-join14-time64
    - pthread_cond_clockwait        tst-cond11-time64
    - pthread_cond_timedwait        tst-abstime-time64
    - pthread_mutex_clocklock       tst-abstime-time64
    - pthread_mutex_timedlock       tst-abstime-time64
    - pthread_rwlock_clockrdlock    tst-abstime-time64, tst-rwlock14-time64
    - pthread_rwlock_clockwrlock    tst-abstime-time64, tst-rwlock14-time64
    - pthread_rwlock_timedrdlock    tst-abstime-time64, tst-rwlock14-time64
    - pthread_rwlock_timedwrlock    tst-abstime-time64, tst-rwlock14-time64
    - pthread_timedjoin_np          tst-join14-time64
    - recvmmsg                      tst-cancel4_2-time64
    - sched_rr_get_interval         tst-sched_rr_get_interval-time64
    - select                        tst-select-time64
    - sem_clockwait                 tst-sem5-time64
    - sem_timedwait                 tst-sem5-time64
    - semctl                        test-sysvsem-time64
    - semtimedop                    test-sysvsem-time64
    - setitimer                     tst-mqueue2-time64, tst-itimer-timer64
    - settimeofday                  tst-settimeofday-time64
    - shmctl                        test-sysvshm-time64
    - sigtimedwait                  tst-sigtimedwait-time64
    - stat                          tst-stat-time64
    - thrd_sleep                    tst-thrd-sleep-time64
    - time                          tst-mqueue{1248}-time64
    - timegm                        tst-timegm-time64
    - timer_gettime                 tst-timer4-time64
    - timer_settime                 tst-timer4-time64
    - timerfd_gettime               tst-timerfd-time64
    - timerfd_settime               tst-timerfd-time64
    - timespec_get                  tst-timespec_get-time64
    - timespec_getres               tst-timespec_getres-time64
    - utime                         tst-utime-time64
    - utimensat                     tst-utimensat-time64
    - utimes                        tst-utimes-time64
    - wait3                         tst-wait3-time64
    - wait4                         tst-wait4-time64
  * librt:
    - aio_suspend                   tst-aio6-time64
    - mq_timedreceive               tst-mqueue{1248}-time64
    - mq_timedsend                  tst-mqueue{1248}-time64
    - timer_gettime                 tst-timer4-time64
    - timer_settime                 tst-timer4-time64
  * libanl:
    - gai_suspend
Reviewed-by: Lukasz Majewski <lukma@denx.de>
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
		
	
		
			
				
	
	
		
			335 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			335 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
| # Option to pass to Python scripts to set the C compiler.  Rewriting
 | |
| # MODULE_NAME is required to enable the _ISOMAC verbatim header
 | |
| # environment.
 | |
| sysdeps-linux-python-cc = \
 | |
|   --cc="$(CC) $(patsubst -DMODULE_NAME=%,-DMODULE_NAME=testsuite,$(CPPFLAGS))"
 | |
| 
 | |
| # Additional dependencies for Python scripts.
 | |
| sysdeps-linux-python-deps = \
 | |
|   $(..)sysdeps/unix/sysv/linux/glibcsyscalls.py \
 | |
|   $(..)scripts/glibcextract.py
 | |
| 
 | |
| # Invocation of the Python interpreter with the Python search path.
 | |
| sysdeps-linux-python = \
 | |
|   PYTHONPATH=$(..)scripts:$(..)sysdeps/unix/sysv/linux $(PYTHON)
 | |
| 
 | |
| ifndef subdir
 | |
| # This target performs two actions:
 | |
| #
 | |
| # Replace <arch-syscall.h> with a file generated from kernel headers
 | |
| # and <fixup-asm-unistd.h>.  Both files are located via the sysdeps
 | |
| # override search path.
 | |
| #
 | |
| # Update sysdeps/unix/sysv/linux/syscall-names.list with additional
 | |
| # names found in the generated <arch-syscall.h> file, so that the
 | |
| # global system call names list is a superset of the
 | |
| # architecture-specific system call names.
 | |
| #
 | |
| # To bootstrap a new architecture, create an empty file in the right
 | |
| # place and run `make update-syscall-lists' from the top-level of a
 | |
| # configured, but not-yet-built glibc tree.
 | |
| #
 | |
| # --lock points to a file not replaced during the update operation, so
 | |
| # that mutual exclusion is achieved.
 | |
| .PHONY: update-syscall-lists
 | |
| update-syscall-lists: arch-syscall.h
 | |
| 	$(sysdeps-linux-python) \
 | |
| 	  sysdeps/unix/sysv/linux/update-syscall-lists.py \
 | |
| 	    $(sysdeps-linux-python-cc) \
 | |
| 	    --lock=sysdeps/unix/sysv/linux/update-syscall-lists.py $< \
 | |
| 	    sysdeps/unix/sysv/linux/syscall-names.list
 | |
| endif
 | |
| 
 | |
| 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)
 | |
| sysdep_routines += adjtimex clone umount umount2 readahead sysctl \
 | |
| 		   setfsuid setfsgid epoll_pwait signalfd \
 | |
| 		   eventfd eventfd_read eventfd_write prlimit \
 | |
| 		   personality epoll_wait tee vmsplice splice \
 | |
| 		   open_by_handle_at mlock2 pkey_mprotect pkey_set pkey_get \
 | |
| 		   timerfd_gettime timerfd_settime prctl \
 | |
| 		   process_vm_readv process_vm_writev clock_adjtime \
 | |
| 		   time64-support pselect32 \
 | |
| 		   xstat fxstat lxstat xstat64 fxstat64 lxstat64 \
 | |
| 		   fxstatat fxstatat64 \
 | |
| 		   xmknod xmknodat convert_scm_timestamps
 | |
| 
 | |
| CFLAGS-gethostid.c = -fexceptions
 | |
| CFLAGS-tee.c = -fexceptions -fasynchronous-unwind-tables
 | |
| CFLAGS-vmsplice.c = -fexceptions -fasynchronous-unwind-tables
 | |
| CFLAGS-splice.c = -fexceptions -fasynchronous-unwind-tables
 | |
| CFLAGS-open_by_handle_at.c = -fexceptions -fasynchronous-unwind-tables
 | |
| CFLAGS-sync_file_range.c = -fexceptions -fasynchronous-unwind-tables
 | |
| CFLAGS-pselect32.c = -fexceptions -fasynchronous-unwind-tables
 | |
| CFLAGS-tst-writev.c += "-DARTIFICIAL_LIMIT=(0x80000000-sysconf(_SC_PAGESIZE))"
 | |
| 
 | |
| sysdep_headers += sys/mount.h sys/acct.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/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/mman-linux.h bits/mman-shared.h bits/ptrace-shared.h \
 | |
| 		  bits/siginfo-arch.h bits/siginfo-consts-arch.h \
 | |
| 		  bits/procfs.h bits/procfs-id.h bits/procfs-extra.h \
 | |
| 		  bits/procfs-prregset.h bits/mman-map-flags-generic.h \
 | |
| 		  bits/shmlba.h \
 | |
| 		  bits/termios-struct.h bits/termios-c_cc.h \
 | |
| 		  bits/termios-c_iflag.h bits/termios-c_oflag.h \
 | |
| 		  bits/termios-baud.h bits/termios-c_cflag.h \
 | |
| 		  bits/termios-c_lflag.h bits/termios-tcflow.h \
 | |
| 		  bits/termios-misc.h \
 | |
| 		  bits/types/struct_semid_ds.h \
 | |
| 		  bits/types/struct_msqid_ds.h \
 | |
| 		  bits/types/struct_shmid_ds.h \
 | |
| 		  bits/ipc-perm.h \
 | |
| 		  bits/struct_stat.h \
 | |
| 		  bits/struct_stat_time64_helper.h \
 | |
| 		  bits/types/struct_msqid64_ds.h \
 | |
| 		  bits/types/struct_msqid64_ds_helper.h \
 | |
| 		  bits/types/struct_semid64_ds.h \
 | |
| 		  bits/types/struct_semid64_ds_helper.h \
 | |
| 		  bits/types/struct_shmid64_ds.h \
 | |
| 		  bits/types/struct_shmid64_ds_helper.h
 | |
| 
 | |
| tests += tst-clone tst-clone2 tst-clone3 tst-fanotify tst-personality \
 | |
| 	 tst-quota tst-sync_file_range tst-sysconf-iov_max tst-ttyname \
 | |
| 	 test-errno-linux tst-memfd_create tst-mlock2 tst-pkey \
 | |
| 	 tst-rlimit-infinity tst-ofdlocks tst-gettid tst-gettid-kill \
 | |
| 	 tst-tgkill tst-sysvsem-linux tst-sysvmsg-linux tst-sysvshm-linux \
 | |
| 	 tst-timerfd tst-ppoll \
 | |
| 	 tst-clock_adjtime tst-adjtimex tst-ntp_adjtime tst-ntp_gettime \
 | |
| 	 tst-ntp_gettimex tst-sigtimedwait tst-misalign-clone
 | |
| 
 | |
| # Test for the symbol version of fcntl that was replaced in glibc 2.28.
 | |
| ifeq ($(have-GLIBC_2.27)$(build-shared),yesyes)
 | |
| tests += tst-ofdlocks-compat
 | |
| endif
 | |
| 
 | |
| tests-internal += tst-sigcontext-get_pc
 | |
| 
 | |
| tests-time64 += \
 | |
|   tst-adjtimex-time64 \
 | |
|   tst-clock_adjtime-time64 \
 | |
|   tst-ntp_adjtime-time64 \
 | |
|   tst-ntp_gettime-time64 \
 | |
|   tst-ntp_gettimex-time64 \
 | |
|   tst-ppoll-time64 \
 | |
|   tst-sigtimedwait-time64 \
 | |
|   tst-timerfd-time64 \
 | |
| 
 | |
| CFLAGS-tst-sigcontext-get_pc.c = -fasynchronous-unwind-tables
 | |
| 
 | |
| # Generate the list of SYS_* macros for the system calls (__NR_*
 | |
| # macros).  The file syscall-names.list contains all possible system
 | |
| # call names, and the generated header file produces SYS_* macros for
 | |
| # the __NR_* macros which are actually defined.
 | |
| 
 | |
| generated += bits/syscall.h
 | |
| $(objpfx)bits/syscall.h: \
 | |
|   ../sysdeps/unix/sysv/linux/gen-syscall-h.awk \
 | |
|   ../sysdeps/unix/sysv/linux/syscall-names.list
 | |
| 	$(make-target-directory)
 | |
| 	LC_ALL=C $(AWK) -f $^ > $@-tmp
 | |
| 	$(move-if-change) $@-tmp $@
 | |
| before-compile += $(objpfx)bits/syscall.h
 | |
| 
 | |
| # All macros defined by <sys/syscall.h>.  Include <bits/syscall.h>
 | |
| # explicitly because <sys/sycall.h> skips it if _LIBC is defined.
 | |
| $(objpfx)tst-syscall-list-macros.list: \
 | |
|   $(objpfx)bits/syscall.h ../sysdeps/unix/sysv/linux/sys/syscall.h
 | |
| 	printf '#include <linux/version.h>\n\
 | |
| #include <sys/syscall.h>\n#include <bits/syscall.h>\n' | \
 | |
| 	  $(CC) -E -o $@-tmp $(CFLAGS) $(CPPFLAGS) -x c - -dM
 | |
| 	$(move-if-change) $@-tmp $@
 | |
| 
 | |
| # __NR_* system call names.  Used by the test below.
 | |
| $(objpfx)tst-syscall-list-nr.list: \
 | |
|   ../sysdeps/unix/sysv/linux/filter-nr-syscalls.awk \
 | |
|   $(objpfx)tst-syscall-list-macros.list
 | |
| 	LC_ALL=C $(AWK) -f $^ > $@-tmp
 | |
| 	$(move-if-change) $@-tmp $@
 | |
| 
 | |
| # SYS_* system call names.  Used by the test below.
 | |
| $(objpfx)tst-syscall-list-sys.list: $(objpfx)tst-syscall-list-macros.list
 | |
| 	LC_ALL=C $(AWK) '/^#define SYS_/ { print substr($$2, 5) }' $< > $@-tmp
 | |
| 	$(move-if-change) $@-tmp $@
 | |
| 
 | |
| tests-special += $(objpfx)tst-syscall-list.out
 | |
| $(objpfx)tst-syscall-list.out: \
 | |
|   ../sysdeps/unix/sysv/linux/tst-syscall-list.sh \
 | |
|   $(objpfx)tst-syscall-list-macros.list \
 | |
|   $(objpfx)tst-syscall-list-nr.list \
 | |
|   $(objpfx)tst-syscall-list-sys.list
 | |
| 	$(BASH) $^ $(AWK) > $@; $(evaluate-test)
 | |
| 
 | |
| tests-special += $(objpfx)tst-glibcsyscalls.out
 | |
| # arch-syscall.h is located via the sysdeps override search path.
 | |
| $(objpfx)tst-glibcsyscalls.out: arch-syscall.h \
 | |
|   ../sysdeps/unix/sysv/linux/syscall-names.list
 | |
| 	$(sysdeps-linux-python) \
 | |
| 	  ../sysdeps/unix/sysv/linux/tst-glibcsyscalls.py \
 | |
| 	    $(sysdeps-linux-python-cc) $< \
 | |
| 	    ../sysdeps/unix/sysv/linux/syscall-names.list \
 | |
| 	  < /dev/null > $@ 2>&1; $(evaluate-test)
 | |
| $(objpfx)tst-glibcsyscalls.out: \
 | |
|   ../sysdeps/unix/sysv/linux/tst-glibcsyscalls.py \
 | |
|   $(sysdeps-linux-python-deps)
 | |
| 
 | |
| # Separate object file for access to the constant from the UAPI header.
 | |
| $(objpfx)tst-sysconf-iov_max: $(objpfx)tst-sysconf-iov_max-uapi.o
 | |
| 
 | |
| tests-special += $(objpfx)tst-mman-consts.out
 | |
| $(objpfx)tst-mman-consts.out: ../sysdeps/unix/sysv/linux/tst-mman-consts.py
 | |
| 	$(sysdeps-linux-python) \
 | |
| 	  ../sysdeps/unix/sysv/linux/tst-mman-consts.py \
 | |
| 	    $(sysdeps-linux-python-cc) \
 | |
| 	  < /dev/null > $@ 2>&1; $(evaluate-test)
 | |
| $(objpfx)tst-mman-consts.out: $(sysdeps-linux-python-deps)
 | |
| 
 | |
| endif # $(subdir) == misc
 | |
| 
 | |
| ifeq ($(subdir),time)
 | |
| sysdep_headers += sys/timex.h bits/timex.h
 | |
| 
 | |
| sysdep_routines += ntp_gettime ntp_gettimex
 | |
| endif
 | |
| 
 | |
| ifeq ($(subdir),signal)
 | |
| tests-special += $(objpfx)tst-signal-numbers.out
 | |
| # Depending on signal.o* is a hack.  What we actually want is a dependency
 | |
| # on signal.h and everything it includes.  That's impractical to write
 | |
| # in this context, but signal.c includes signal.h and not much else so it'll
 | |
| # be conservatively correct.
 | |
| $(objpfx)tst-signal-numbers.out: \
 | |
| 		../sysdeps/unix/sysv/linux/tst-signal-numbers.py \
 | |
| 		$(objpfx)signal.o*
 | |
| 	$(sysdeps-linux-python) \
 | |
| 	  ../sysdeps/unix/sysv/linux/tst-signal-numbers.py \
 | |
| 	    $(sysdeps-linux-python-cc) \
 | |
| 	  < /dev/null > $@ 2>&1; $(evaluate-test)
 | |
| $(objpfx)tst-signal-numbers.out: $(sysdeps-linux-python-deps)
 | |
| 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 \
 | |
| 		  bits/socket-constants.h
 | |
| sysdep_routines += cmsg_nxthdr
 | |
| CFLAGS-recvmmsg.c = -fexceptions -fasynchronous-unwind-tables
 | |
| CFLAGS-sendmmsg.c = -fexceptions -fasynchronous-unwind-tables
 | |
| 
 | |
| tests-special += $(objpfx)tst-socket-consts.out
 | |
| $(objpfx)tst-socket-consts.out: ../sysdeps/unix/sysv/linux/tst-socket-consts.py
 | |
| 	PYTHONPATH=../scripts \
 | |
| 	$(PYTHON) ../sysdeps/unix/sysv/linux/tst-socket-consts.py \
 | |
| 		   --cc="$(CC) $(patsubst -DMODULE_NAME=%, \
 | |
| 					  -DMODULE_NAME=testsuite, \
 | |
| 					  $(CPPFLAGS)) -D_ISOMAC" \
 | |
| 	< /dev/null > $@ 2>&1; $(evaluate-test)
 | |
| endif # $(subdir) == socket
 | |
| 
 | |
| 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 oldglob getcpu
 | |
| 
 | |
| tests += tst-affinity tst-affinity-pid
 | |
| 
 | |
| tests-static := tst-affinity-static
 | |
| tests += $(tests-static)
 | |
| 
 | |
| 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
 | |
| tests += tst-getdents64
 | |
| 
 | |
| # The tested readdir64 symbol was replaced in glibc 2.2.
 | |
| ifeq ($(have-GLIBC_2.1.3)$(build-shared),yesyes)
 | |
| tests += tst-readdir64-compat
 | |
| endif
 | |
| endif # $(subdir) == dirent
 | |
| 
 | |
| ifeq ($(subdir),nis)
 | |
| CFLAGS-ypclnt.c = -DUSE_BINDINGDIR=1
 | |
| endif
 | |
| 
 | |
| ifeq ($(subdir),io)
 | |
| sysdep_routines += xstatconv internal_statvfs \
 | |
| 		   sync_file_range fallocate fallocate64 \
 | |
| 		   close_nocancel fcntl_nocancel \
 | |
| 		   open_nocancel open64_nocancel \
 | |
| 		   openat_nocancel openat64_nocancel \
 | |
| 		   read_nocancel pread64_nocancel \
 | |
| 		   write_nocancel statx_cp stat_t64_cp
 | |
| 
 | |
| sysdep_headers += bits/fcntl-linux.h
 | |
| 
 | |
| tests += tst-fallocate tst-fallocate64 tst-o_path-locks
 | |
| endif
 | |
| 
 | |
| ifeq ($(subdir),elf)
 | |
| sysdep-rtld-routines += dl-brk dl-sbrk dl-getcwd dl-openat64 dl-opendir
 | |
| 
 | |
| 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_INOTIFY -DHAVE_NETLINK
 | |
| CFLAGS-gai.c += -DNEED_NETLINK
 | |
| endif
 | |
| 
 | |
| ifeq ($(subdir),nptl)
 | |
| tests += tst-align-clone tst-getpid1
 | |
| endif
 |