glibc/sysvipc/Makefile
Adhemerval Zanella eef7913c2f linux: Only use 64-bit syscall if required for semtimedop
For !__ASSUME_TIME64_SYSCALLS there is no need to issue a 64-bit syscall
if the provided timeout fits in a 32-bit one.  The 64-bit usage should
be rare since the timeout is a relative one.

Checked on i686-linux-gnu on a 4.15 kernel and on a 5.11 kernel
(with and without --enable-kernel=5.1) and on x86_64-linux-gnu.

Reviewed-by: Lukasz Majewski <lukma@denx.de>
2021-06-22 12:09:52 -03:00

50 lines
1.5 KiB
Makefile

# Copyright (C) 1995-2021 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
# <https://www.gnu.org/licenses/>.
#
# Sub-makefile for sysvipc portion of the library.
#
subdir := sysvipc
include ../Makeconfig
headers := sys/ipc.h sys/msg.h sys/sem.h sys/shm.h \
bits/ipctypes.h bits/ipc.h bits/msq.h bits/sem.h bits/shm.h
routines := ftok \
msgsnd msgrcv msgget msgctl \
semop semget semctl semtimedop \
shmat shmdt shmget shmctl
tests := test-sysvmsg test-sysvsem test-sysvshm
tests-time64 := test-sysvmsg-time64 test-sysvsem-time64 test-sysvshm-time64
include ../Rules
CFLAGS-msgrcv.c += -fexceptions -fasynchronous-unwind-tables
CFLAGS-msgsnd.c += -fexceptions -fasynchronous-unwind-tables
ifeq (yes,$(build-shared))
librt = $(common-objpfx)rt/librt.so
else
librt = $(common-objpfx)rt/librt.a
endif
$(objpfx)test-sysvsem: $(librt)
$(objpfx)test-sysvsem-time64: $(librt)