1995-02-18 01:27:10 +00:00
|
|
|
|
# Rules for MiG interfaces that want to go into the C library.
|
2020-01-01 00:14:33 +00:00
|
|
|
|
# Copyright (C) 1991-2020 Free Software Foundation, Inc.
|
1995-02-18 01:27:10 +00:00
|
|
|
|
# This file is part of the GNU C Library.
|
|
|
|
|
|
|
|
|
|
# The GNU C Library is free software; you can redistribute it and/or
|
2001-07-06 04:58:11 +00:00
|
|
|
|
# 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.
|
1995-02-18 01:27:10 +00:00
|
|
|
|
|
|
|
|
|
# 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
|
2001-07-06 04:58:11 +00:00
|
|
|
|
# Lesser General Public License for more details.
|
1995-02-18 01:27:10 +00:00
|
|
|
|
|
2001-07-06 04:58:11 +00:00
|
|
|
|
# You should have received a copy of the GNU Lesser General Public
|
2012-02-09 23:18:22 +00:00
|
|
|
|
# License along with the GNU C Library; if not, see
|
Prefer https to http for gnu.org and fsf.org URLs
Also, change sources.redhat.com to sourceware.org.
This patch was automatically generated by running the following shell
script, which uses GNU sed, and which avoids modifying files imported
from upstream:
sed -ri '
s,(http|ftp)(://(.*\.)?(gnu|fsf|sourceware)\.org($|[^.]|\.[^a-z])),https\2,g
s,(http|ftp)(://(.*\.)?)sources\.redhat\.com($|[^.]|\.[^a-z]),https\2sourceware.org\4,g
' \
$(find $(git ls-files) -prune -type f \
! -name '*.po' \
! -name 'ChangeLog*' \
! -path COPYING ! -path COPYING.LIB \
! -path manual/fdl-1.3.texi ! -path manual/lgpl-2.1.texi \
! -path manual/texinfo.tex ! -path scripts/config.guess \
! -path scripts/config.sub ! -path scripts/install-sh \
! -path scripts/mkinstalldirs ! -path scripts/move-if-change \
! -path INSTALL ! -path locale/programs/charmap-kw.h \
! -path po/libc.pot ! -path sysdeps/gnu/errlist.c \
! '(' -name configure \
-execdir test -f configure.ac -o -f configure.in ';' ')' \
! '(' -name preconfigure \
-execdir test -f preconfigure.ac ';' ')' \
-print)
and then by running 'make dist-prepare' to regenerate files built
from the altered files, and then executing the following to cleanup:
chmod a+x sysdeps/unix/sysv/linux/riscv/configure
# Omit irrelevant whitespace and comment-only changes,
# perhaps from a slightly-different Autoconf version.
git checkout -f \
sysdeps/csky/configure \
sysdeps/hppa/configure \
sysdeps/riscv/configure \
sysdeps/unix/sysv/linux/csky/configure
# Omit changes that caused a pre-commit check to fail like this:
# remote: *** error: sysdeps/powerpc/powerpc64/ppc-mcount.S: trailing lines
git checkout -f \
sysdeps/powerpc/powerpc64/ppc-mcount.S \
sysdeps/unix/sysv/linux/s390/s390-64/syscall.S
# Omit change that caused a pre-commit check to fail like this:
# remote: *** error: sysdeps/sparc/sparc64/multiarch/memcpy-ultra3.S: last line does not end in newline
git checkout -f sysdeps/sparc/sparc64/multiarch/memcpy-ultra3.S
2019-09-07 05:40:42 +00:00
|
|
|
|
# <https://www.gnu.org/licenses/>.
|
1995-02-18 01:27:10 +00:00
|
|
|
|
|
|
|
|
|
# Makefiles may define these variable before including this file:
|
|
|
|
|
# user-interfaces Names of interfaces to put user stubs in for.
|
|
|
|
|
# server-interfaces Names of interfaces to put server stubs in for.
|
|
|
|
|
# interface-library Name of interface library to build and install.
|
|
|
|
|
# This file sets:
|
|
|
|
|
# interface-headers Names of generated interface header files.
|
|
|
|
|
# interface-routines Names of generated interface routines.
|
|
|
|
|
# All user stubs are put in individual files, prefixed with RPC_; header
|
|
|
|
|
# for both __ and non-__ names is put in foo.h. Server interfaces are
|
|
|
|
|
# written to foo_server.c and foo_server.h; the server functions are called
|
|
|
|
|
# _S_rpcname.
|
|
|
|
|
|
|
|
|
|
# Includers can also add to or modify `migdefines' to set MiG flags.
|
2018-03-04 01:11:46 +00:00
|
|
|
|
# They can also set `migheaderpipe' to mangle the MiG header output.
|
1995-02-18 01:27:10 +00:00
|
|
|
|
|
|
|
|
|
all:
|
|
|
|
|
|
|
|
|
|
# Make sure no value comes from the environment, since we append to it.
|
|
|
|
|
# This is done also in ../Rules, but we append to the value before
|
|
|
|
|
# including Rules, which changes the origin.
|
|
|
|
|
ifneq "$(findstring env,$(origin generated))" ""
|
|
|
|
|
generated :=
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
include ../Makeconfig
|
|
|
|
|
|
1998-10-18 23:19:12 +00:00
|
|
|
|
# This makefile contains a lot of implicit rules that get optimized
|
|
|
|
|
# away if the target directory does not exist.
|
|
|
|
|
ifndef no_deps
|
|
|
|
|
-include $(objpfx)dummy.mk
|
|
|
|
|
endif
|
|
|
|
|
$(objpfx)dummy.mk:
|
|
|
|
|
$(make-target-directory)
|
|
|
|
|
echo '# Empty' > $@
|
|
|
|
|
|
2018-01-27 20:40:08 +00:00
|
|
|
|
MIGFLAGS = -DSTANDALONE -DTypeCheck=0 \
|
1995-02-18 01:27:10 +00:00
|
|
|
|
$(+includes) $(migdefines) -subrprefix __
|
* sysdeps/mach/hurd/Makefile ($(link-rpcuserlibs)): Don't append
options after $(build-module), which is no longer a single command.
(LDFLAGS-link-rpcuserlibs): New variable to hold those options.
(LDFLAGS-libmachuser-link.so, LDFLAGS-libhurduser-link.so): New
variables using it. Reported by Mark Kettenis <kettenis@gnu.org>.
2001-03-11 Roland McGrath <roland@frob.com>
* elf/rtld.c (dl_main): Add cast to quiet warning.
* elf/dl-load.c (_dl_map_object_from_fd): Likewise.
* iconv/gconv_conf.c (__gconv_get_path): Likewise.
(__gconv_read_conf): Likewise.
* iconv/gconv_db.c (gen_steps): Likewise.
(__gconv_find_transform): Likewise.
* locale/programs/charmap-dir.c (fopen_uncompressed): Likewise.
(fopen_uncompressed): Use const in second argument's type.
2001-03-11 Roland McGrath <roland@frob.com>
* sysdeps/mach/hurd/dl-sysdep.c (__writev): New function.
* mach/mach_error.h: Fix ancient #endif syntax.
* hurd/hurdmalloc.c: Likewise.
* sysdeps/generic/atomicity.h (exchange_and_add, atomic_add,
compare_and_swap): Add volatile qualifier to first arg, to bring
these prototypes in line with all the other implementations.
Add a #warning to remind the builder that these are not atomic.
2001-03-04 Roland McGrath <roland@frob.com>
* hurd/vpprintf.c (vpprintf) [USE_IN_LIBIO]: Use innermore first
member of TEMP_F so its type is _IO_FILE * as expected.
* hurd/fopenport.c (seekio): Conditionalize type of POS argument
on [USE_IN_LIBIO]. Check the value for overflow, since for libio
it might exceed off_t's range.
2001-02-25 Roland McGrath <roland@frob.com>
* sysdeps/mach/hurd/sysd-stdio.c (__stdio_reopen): Use prototype.
* sysdeps/unix/bsd/getpt.c (__posix_openpt): Likewise.
* sysdeps/mach/hurd/i386/intr-msg.h (SYSCALL_EXAMINE): Make this a
macro instead of an inline function,
(MSG_EXAMINE): Likewise.
* hurd/hurd/ioctl.h (_HURD_HANDLE_IOCTLS_1): Remove extraneous ##.
* hurd/get-host.c: Include <string.h> for decls of built-ins.
* hurd/hurdchdir.c: Likewise.
* sysdeps/mach/hurd/i386/sigreturn.c: Likweise.
* sysdeps/mach/hurd/opendir.c: Likewise.
* mach/mach_init.c: Include <unistd.h> for _exit decl.
* mach/errsystems.awk: Give output file a trailing newline.
* mach/Machrules (MIG): Prepend CC='${CC}' to the mig command, so that
the script will use our compiler for the cpp stage.
With --enable-all-warnings we get a whole bunch of warnings,
and these are just a few fixes; there are more needed to silence it.
* mach/mach/mig_support.h (__mig_strncpy, mig_strncpy): Add extern
decls before extern inline defns to quiet gcc warning.
* hurd/hurd/threadvar.h (__hurd_threadvar_location_from_sp): Likewise.
* sysdeps/mach/i386/machine-sp.h (__thread_stack_pointer): Likewise.
2001-04-01 05:04:31 +00:00
|
|
|
|
# Putting CC in the enivronment makes the mig wrapper script
|
|
|
|
|
# use the same compiler setup we are using to run cpp.
|
2002-02-17 07:57:32 +00:00
|
|
|
|
MIG := CC='${CC}' CPP='${CPP} -x c' $(MIG)
|
1995-02-18 01:27:10 +00:00
|
|
|
|
|
|
|
|
|
.SUFFIXES: .defs # Just to set specified_rule_matched.
|
|
|
|
|
|
|
|
|
|
define nl # This is needed by *.ir.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
endef
|
|
|
|
|
ifdef user-interfaces
|
|
|
|
|
*.ir := $(addprefix $(objpfx),$(foreach if,$(user-interfaces),$(if).ir))
|
1996-02-14 06:39:32 +00:00
|
|
|
|
ifndef no_deps
|
1995-02-18 01:27:10 +00:00
|
|
|
|
ifndef inhibit_interface_rules
|
1996-02-16 02:19:52 +00:00
|
|
|
|
-include $(*.ir)
|
1995-02-18 01:27:10 +00:00
|
|
|
|
endif
|
1996-02-14 06:39:32 +00:00
|
|
|
|
endif
|
1995-02-18 01:27:10 +00:00
|
|
|
|
ifneq "$(*.ir)" "$(wildcard $(*.ir))"
|
|
|
|
|
# If any .ir file is missing, we will be unable to make all the deps.
|
|
|
|
|
no_deps=t
|
|
|
|
|
endif
|
|
|
|
|
generated += $(*.ir:$(objpfx)%=%)
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# %.ir defines a variable `%-calls', which lists the RPCs defined by
|
|
|
|
|
# %.defs, and a rule to build $(%-calls:%=RPC_$(%-userprefix)%.c) from
|
|
|
|
|
# %.defs, where $(%-userprefix) is the user prefix given in %.defs. We use
|
|
|
|
|
# the kludgificacious method of defining a pattern rule to build files
|
|
|
|
|
# matching patterns we are pretty damn sure will only match the particular
|
|
|
|
|
# files we have in mind. To be so damn sure, we use the silly names
|
|
|
|
|
# RPC_*.c and the pattern R%C_*.c because using __*.c and _%*.c (or any
|
|
|
|
|
# other useful pattern) causes the rule for `host_info' to also match
|
|
|
|
|
# `xxx_host_info', and analogous lossage.
|
|
|
|
|
#
|
|
|
|
|
# Depend on %.h just so they will be built from %.uh in the
|
|
|
|
|
# makefile-rebuilding run which builds %.ir; otherwise, %.uh is built as an
|
|
|
|
|
# intermediate in order to make %.ir and then removed before re-exec, when
|
|
|
|
|
# %.uh is built all over again to build %.h.
|
|
|
|
|
$(objpfx)%.ir: $(objpfx)%.uh $(objpfx)%.h
|
1998-07-14 15:37:33 +00:00
|
|
|
|
($(AWK) "NF == 4 && (\$$2 == \"Routine\" || \$$2 == \"SimpleRoutine\")\
|
1996-05-12 16:38:08 +00:00
|
|
|
|
{ printf \"$*-calls += %s\\n\", \$$3 }" $< ;\
|
1995-02-18 01:27:10 +00:00
|
|
|
|
echo '$$($*-calls:%=$$(objpfx)R\%C_%.c): $$(objpfx)$*.ustamp ;';\
|
|
|
|
|
) > $@-new
|
1998-06-22 17:08:51 +00:00
|
|
|
|
mv -f $@-new $@
|
1995-02-18 01:27:10 +00:00
|
|
|
|
vpath Machrules ../mach # Find ourselves.
|
|
|
|
|
|
|
|
|
|
ifndef transform-user-stub-output
|
|
|
|
|
transform-user-stub-output = tmp
|
|
|
|
|
define transform-user-stub
|
|
|
|
|
echo "weak_alias (__$$call, $$call)" >> $(objpfx)tmp_$${call}.c;
|
|
|
|
|
endef
|
|
|
|
|
endif
|
|
|
|
|
|
1996-06-05 19:07:37 +00:00
|
|
|
|
|
|
|
|
|
# Generate `#include <NAME.defs>', taking $* for NAME.
|
|
|
|
|
# If $(NAME.defs) is defined use its value in place of `NAME.defs'.
|
|
|
|
|
define include-%.defs
|
|
|
|
|
echo '#include <$(firstword $($*.defs) $*.defs)>'
|
|
|
|
|
endef
|
|
|
|
|
|
1998-07-04 14:40:35 +00:00
|
|
|
|
ifndef no_deps
|
1995-02-18 01:27:10 +00:00
|
|
|
|
# Not an implicit rule so the stamps are never removed as intermediates!
|
1996-05-12 16:38:08 +00:00
|
|
|
|
$(patsubst %,$(objpfx)%.ustamp,$(user-interfaces)): $(objpfx)%.ustamp:
|
|
|
|
|
rm -f $@
|
1996-06-05 19:07:37 +00:00
|
|
|
|
$(include-%.defs) | \
|
1996-05-12 16:38:08 +00:00
|
|
|
|
$(MIG) - /dev/null -prefix __ \
|
|
|
|
|
$(MIGFLAGS) $(user-MIGFLAGS) $(MIGFLAGS-$*) \
|
|
|
|
|
-i $(objpfx)tmp_ \
|
1995-02-18 01:27:10 +00:00
|
|
|
|
-server /dev/null -user /dev/null -header /dev/null
|
|
|
|
|
for call in $($*-calls); do \
|
|
|
|
|
$(transform-user-stub) \
|
1998-05-29 10:21:16 +00:00
|
|
|
|
$(move-if-change) $(objpfx)$(transform-user-stub-output)_$${call}.c \
|
1995-02-18 01:27:10 +00:00
|
|
|
|
$(objpfx)RPC_$${call}.c; \
|
|
|
|
|
done
|
|
|
|
|
touch $@
|
1996-05-12 16:38:08 +00:00
|
|
|
|
-include $(patsubst %,$(objpfx)%.udeps,$(user-interfaces))
|
Sun May 26 15:15:08 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* stdlib/ldiv.c: Deansideclized.
Sun May 26 19:39:53 1996 Ulrich Drepper <drepper@cygnus.com>
* intl/loadmsgcat.c (_nl_load_domain): Test correct variable
after malloc.
* string/Makefile (tester-ENV): New variable to suppress message
translation in test.
* string/tester.c: Add tests for strtok_r and strsep.
* sysdeps/i386/i486/strcat.S: Correct some more 8bit operation
<-> 32 bit operand conflicts.
* sysdeps/i386/strsep.S: Wrapper around <sysdeps/i386/strtok.S>
to produce strsep function.
* sysdeps/i386/strtok.S: Optimized implementation of strtok
function.
* sysdeps/i386/strtok_r.S: Wrapper around <sysdeps/i386/strtok.S>
to produce strtok_r function.
* sysdeps/generic/strtok.c: Moved here from string/strtok.c.
Corrected example in comment.
* string/Makefile (routines): Add strtok_r.
* sysdeps/generic/strtok_r.c: New file. Implement reentrant version
of strtok_r.
* string/string.h: Add prototype for strtok_r.
* wcsmbs/wcstok.c: Handle illegal SAVE_PTR argument the same
as in strtok_r.
Sun May 26 13:28:23 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* time/tzset.c (__tzset): Ignore leading : in $TZ; always try tzfile
first and fall back to 1003.1 syntax only if it fails.
* time/Makefile (install-others): Also install posix/ZONE and
right/ZONE for each ZONE in $(zonenames).
(z.% rule): Generate rules for right/ZONE and posix/ZONE targets too,
the difference begin leapseconds vs /dev/null as 3rd dep. For
original ZONE targets use $(leapseconds), to be set in Makeconfig.
(target-zone-flavor): New variable.
(tzcompile): Use it to get the right -d for posix/ and right/ flavors.
* Makeconfig (leapseconds): New variable.
* mach/Machrules (%.udeps rule): Depend on Machrules.
Emit deps for .uh and .__h files.
(%.uh, %.__h rules): Don't depend on %.defs; use #include <$*.defs>
instead.
Sun May 26 01:06:47 1996 Ulrich Drepper <drepper@cygnus.com>
* stdlib/Makefile (routines): Add llabs, lldiv.
* stdlib/llabs.c: New file. Implementation of return
absolute value of long long argument.
* stdlib/lldiv.c: New file. Implementation of division with remainder
of long long argument.
* stdlib/stdlib.h [__USE_GNU] (lldiv_t): New type for lldiv
function.
Define prototypes for lldiv and llabs functions.
* locale/C-collate.c: Initialize _NL_COLLATE_NRULES element.
* stdlib/strtod.c: Replace wchar_t with wint_t. The later is
really the type for a single wide character.
* string/strxfrm.c (print_val): Define separate version for
use as wcsxfrm. Here we don't need UTF8 encoding.
* wcsmbs/wchar.h: gcc-2.7.2-960517 finally introduces wint_t
in <stddef.h>. Use this value and only for older gcc version
define in place.
(uwchar_t): Remove definition.
* wcsmbs/wcscmp.c, wcsmbs/wcscoll.c, wcsmbs/wcsncmp.c,
wcsmbs/wcsxfrm.c, wcsmbs/wmemcmp.c: : Don't use uwchar_t as unsigned
type. wint_t is intended for this.
Sat May 25 14:10:19 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* sysdeps/unix/bsd/direntry.h: Use [1] instead of [0] for d_name to
quiet -ansi -pedantic.
* sysdeps/unix/common/direntry.h: Likewise.
* login/Makefile (headers): Add lastlog.h.
* login/lastlog.h: New file.
* login/Makefile (CFLAGS): Don't append -D_THREAD_SAFE.
* login/utmp.h [_REENTRANT || _THREAD_SAFE]: Replace this conditional
with #ifdef __USE_REENTRANT.
* features.h (__GNU_LIBRARY__): Set to 6.
[_GNU_SOURCE] (_POSIX_SOURCE, _POSIX_C_SOURCE, _BSD_SOURCE,
_SVID_SOURCE): Make sure they are all defined.
* sysdeps/unix/sysv/linux/gnu/types.h: Instead of including
<linux/posix_types.h>, define _LINUX_TYPES_DONT_EXPORT and then
include <linux/types.h>.
* resource/sys/resource.h: Remove trailing commas from enums.
* sysdeps/generic/netinet/in.h: Remove trailing commas from enums.
* sysdeps/unix/sysv/linux/netinet/in.h: Likewise.
1996-05-26 19:19:51 +00:00
|
|
|
|
$(patsubst %,$(objpfx)%.udeps,$(user-interfaces)):
|
|
|
|
|
$(objpfx)%.udeps: $(..)mach/Machrules
|
1996-05-15 15:49:26 +00:00
|
|
|
|
$(make-target-directory)
|
2001-12-02 19:34:28 +00:00
|
|
|
|
# We must use $(CFLAGS) to get -O flags that affect #if's in header files.
|
2001-12-02 22:13:05 +00:00
|
|
|
|
$(include-%.defs) | \
|
2001-12-02 19:34:28 +00:00
|
|
|
|
$(CC) $(CFLAGS) $(CPPFLAGS) -M -x c - | \
|
2006-04-04 00:22:05 +00:00
|
|
|
|
sed -e 's,- *:,$(.udeps-targets):,' \
|
1996-05-12 16:38:08 +00:00
|
|
|
|
$(sed-remove-objpfx) > $@.new
|
|
|
|
|
mv -f $@.new $@
|
2006-04-04 00:22:05 +00:00
|
|
|
|
.udeps-targets = $@ $(@:.udeps=.ustamp) $(@:.udeps=.uh) $(@:.udeps=.__h) \
|
|
|
|
|
$(@:.udeps=_server.c) $(@:.udeps=_server.h)
|
1998-07-04 14:40:35 +00:00
|
|
|
|
endif
|
1995-02-18 01:27:10 +00:00
|
|
|
|
|
|
|
|
|
# Look for the server stub files where they will be written.
|
|
|
|
|
vpath %_server.c $(addprefix $(objpfx),$(sort $(dir $(server-interfaces))))
|
|
|
|
|
|
|
|
|
|
# Build the server stubs in $(objdir).
|
1996-05-12 16:38:08 +00:00
|
|
|
|
$(objpfx)%_server.c $(objpfx)%_server.h:
|
1998-07-14 15:37:33 +00:00
|
|
|
|
$(make-target-directory)
|
1996-06-05 19:07:37 +00:00
|
|
|
|
$(include-%.defs) | \
|
1996-05-12 16:38:08 +00:00
|
|
|
|
$(MIG) - /dev/null -prefix _S_ \
|
|
|
|
|
$(MIGFLAGS) $(server-MIGFLAGS) $(MIGFLAGS-$*) \
|
Thu Jun 13 17:25:11 1996 David Mosberger-Tang <davidm@azstarnet.com>
* sysdeps/generic/memcmp.c: Add prototype decls for internal fns.
* locale/programs/locale.c: Include string.h.
* sunrpc/xdr_stdio.c (xdrstdio_getlong), sunrpc/xdr_rec.c
(xdrrec_getlong), sunrpc/xdr_mem.c (xdrmem_getlong): Make sure
appropriate sign-extension is performed on machines with
sizeof(long) > 4.
* sunrpc/xdr.c (xdr_int, xdr_u_int): If sizeof(long)==8 and
sizeof(int)<sizeof(long), we need to go through a temporary
variable.
* locale/programs/ld-numeric.c: Include <alloca.h>
* libio/stdio.h (__libc_fatal): Add prototype.
* libio/cleanup.c: Use __P() to declare prototype when __STDC__ is
in efect.
* libio/iopopen.c (read_or_write, parent_end, child_end): Declare
volatile to avoid "might get clobbered by longjmp" warning.
* features.h (__KERNEL_STRICT_NAMES): Define __KERNEL_STRICT_NAMES
unless _LOOSE_KERNEL_NAMES is in effect (which, with high
probability is a sure loser).
* sysdeps/unix/sysv/linux/gnu/types.h (__KERNEL_STRICT_NAMES): Remove.
* sysdeps/unix/bsd/osf/alpha/start.S (errno): Removed.
* sysdeps/unix/sysv/linux/alpha/start.S: Ditto.
* misc/paths.h (_PATH_MAN): Change from /usr/share/man to /usr/man
to be Linux FSSTND compliant.
Mon Jun 10 17:50:31 1996 David Mosberger-Tang <davidm@azstarnet.com>
* sysdeps/unix/sysv/linux/alpha/pipe.S: Use PSEUDO.
* sysdeps/unix/sysv/linux/alpha/sysdep.S,
sysdeps/unix/sysv/linux/alpha/brk.S,
sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S,
sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S,
sysdeps/unix/sysv/linux/alpha/llseek.S,
sysdeps/unix/sysv/linux/alpha/sigsuspend.S,
sysdeps/unix/sysv/linux/alpha/syscall.S: Rename syscall_error to
__syscall_error to avoid intruding application name space.
* sysdeps/unix/sysv/linux/alpha/sysdep.h: Rename __NR_get?id
to SYS_get?id so that syscall stubs in sysdeps/unix define
these syscalls in terms of getxpid/getxuid/getxgid.
* sysdeps/unix/_exit.S, sysdeps/unix/getegid.S,
sysdeps/unix/geteuid.S, sysdeps/unix/getppid.S,
sysdeps/unix/execve.S, sysdeps/unix/fork.S,
sysdeps/unix/syscall.S: Terminate syscall with PSEUDO_END.
* sysdeps/unix/make-syscalls.sh, sysdeps/unix/sysdep.h
(PSEUDO_END): Rename END() to PSEUDO_END().
* sysdeps/unix/alpha/sysdep.h: Move error-handling code in PSEUDO
to PSEUDO_END to improve branch-prediction. Include .frame
directive to make syscalls debugabble.
(PSEUDO_END): New macro.
* sysdeps/unix/alpha/sysdep.h, sysdeps/alpha/bb_init_func.S,
sysdeps/unix/sysv/linux/alpha/brk.S: Use ldiq instead of ldi since
latter is illegal under DEC Unix.
* sysdeps/unix/alpha/sysdep.S: Renamed from
sysdeps/unix/sysv/linux/alpha/sysdep.S. This file works for OSF/1
as well.
* sysdeps/unix/bsd/osf/alpha/sysdep.S: Remove (note that the
EWOULDBLOCK -> EAGAIN mapping was unnecessary since
EWOULDBLOCK==EAGAIN under DEC Unix and Linux/Alpha).
* sysdeps/alpha/divrem.h: Use retaddr instead of ra as the return
address register in the .frame directive.
* sysdeps/alpha/copysign.c: Remove.
* sunrpc/rpc/types.h: Include <sys/param.h> and <netinet/in.h> to
avoid RPC definitions of INADDR_LOOPBACK and/or MAXHOSTNAMELEN.
* errno.h: Move __END_DECLS to correct place to make file
compilable under c++.
* dirent/dirent.h: Document _DIRENT_HAVE_D_OFF macro. Define
d_ino only if <direntry.h> hasn't defined d_fileno.
* configure.in (HAVE_ASM_WEAKEXT_DIRECTIVE): Reverse order of
arguments to weakext to make .weakext detection work on ECOFF systems.
* FAQ: Add Linux/Alpha to list of supported platforms. Mention
that _validuser() has been replaced by __ivaliduser().
Thu Jun 6 21:39:38 1996 David Mosberger-Tang <davidm@azstarnet.com>
* sysdeps/unix/bsd/sun/sunos4/tcsetattr.c (tcsetattr): Declare cmd
as unsigned long, not as int (to avoid incorrect int->long
promotion).
1996-06-19 06:54:12 +00:00
|
|
|
|
-user /dev/null -header /dev/null \
|
1995-02-18 01:27:10 +00:00
|
|
|
|
-server $(@:.h=.c) -sheader $(@:.c=.h)
|
|
|
|
|
|
|
|
|
|
# To get header files that declare both the straight and __ functions,
|
|
|
|
|
# we generate two files and paste them together.
|
2006-02-01 22:44:44 +00:00
|
|
|
|
$(patsubst %,$(objpfx)%.uh,$(user-interfaces)): $(objpfx)%.uh:; $(mig.uh)
|
1995-02-18 01:27:10 +00:00
|
|
|
|
define mig.uh
|
|
|
|
|
$(make-target-directory)
|
1996-06-05 19:07:37 +00:00
|
|
|
|
$(include-%.defs) | \
|
1996-09-06 00:08:55 +00:00
|
|
|
|
$(MIG) - /dev/null $(MIGFLAGS) $(MIGFLAGS-$*) \
|
1995-02-18 01:27:10 +00:00
|
|
|
|
-header $@ -server /dev/null -user /dev/null
|
|
|
|
|
endef
|
2006-02-01 22:44:44 +00:00
|
|
|
|
$(patsubst %,$(objpfx)%.__h,$(user-interfaces)): $(objpfx)%.__h:; $(mig.__h)
|
1995-02-18 01:27:10 +00:00
|
|
|
|
define mig.__h
|
|
|
|
|
$(make-target-directory)
|
1996-06-05 19:07:37 +00:00
|
|
|
|
$(include-%.defs) | \
|
1996-09-06 00:08:55 +00:00
|
|
|
|
$(MIG) - /dev/null $(MIGFLAGS) $(MIGFLAGS-$*) -prefix __ \
|
1995-02-18 01:27:10 +00:00
|
|
|
|
-header $@ -server /dev/null -user /dev/null
|
|
|
|
|
endef
|
|
|
|
|
|
2006-02-01 22:44:44 +00:00
|
|
|
|
$(patsubst %,$(objpfx)%.h,$(user-interfaces)): $(objpfx)%.h: $(objpfx)%.__h \
|
|
|
|
|
$(objpfx)%.uh
|
1995-02-18 01:27:10 +00:00
|
|
|
|
# The last line of foo.__h is "#endif _foo_user_".
|
|
|
|
|
# The first two lines of foo.uh are "#ifndef _foo_user_"/"#define _foo_user_".
|
2018-03-04 01:11:46 +00:00
|
|
|
|
(sed -e '$$d' $<; sed -e '1,2d' $(word 2,$^)) $(migheaderpipe) > $@-new
|
1998-06-22 17:08:51 +00:00
|
|
|
|
mv -f $@-new $@
|
1995-02-18 01:27:10 +00:00
|
|
|
|
|
|
|
|
|
interface-routines := $(foreach if,$(user-interfaces), \
|
|
|
|
|
$(addprefix RPC_,$($(if)-calls))) \
|
|
|
|
|
$(server-interfaces:%=%_server)
|
|
|
|
|
interface-headers := $(user-interfaces:%=%.h) \
|
|
|
|
|
$(server-interfaces:%=%_server.h)
|
|
|
|
|
|
|
|
|
|
# Remove the generated user stub source and header files,
|
|
|
|
|
# and don't distribute them.
|
1996-06-05 20:07:42 +00:00
|
|
|
|
mach-generated = $(interface-routines:%=%.c) $(interface-headers) \
|
|
|
|
|
$(foreach h,$(user-interfaces),$h.uh $h.__h)
|
1995-02-18 01:27:10 +00:00
|
|
|
|
generated += $(mach-generated)
|
|
|
|
|
|
|
|
|
|
# These are needed to generate the dependencies.
|
|
|
|
|
before-compile += $(interface-headers:%=$(objpfx)%)
|
|
|
|
|
|
|
|
|
|
# Don't let these be intermediate files and get removed.
|
|
|
|
|
$(foreach h,$(interface-headers:%.h=$(objpfx)%),$h.h $h.__h $h.uh) :
|
|
|
|
|
$(interface-routines:%=$(objpfx)%.c) :
|
|
|
|
|
|
|
|
|
|
# Convenient target to generate all the headers.
|
|
|
|
|
.PHONY: interface-headers
|
|
|
|
|
interface-headers: $(interface-headers)
|
|
|
|
|
|
|
|
|
|
# Don't automatically generate dependencies for the sources we generate.
|
|
|
|
|
# There are likely to be a whole lot of them, and we know their
|
|
|
|
|
# dependencies ahead of time anyway because they're boilerplate.
|
|
|
|
|
omit-deps += $(interface-routines)
|
|
|
|
|
|
1996-05-12 16:38:08 +00:00
|
|
|
|
# Choose any single module generated by MiG. We will compute this module's
|
|
|
|
|
# dependencies and then assume all other MiG-generated modules depend on the
|
|
|
|
|
# same headers.
|
|
|
|
|
some-if-rtn := $(firstword $(interface-routines))
|
|
|
|
|
ifdef some-if-rtn
|
|
|
|
|
$(foreach o,$(object-suffixes),$(interfaces-routines:%=%$o)): $(some-if-rtn).d
|
|
|
|
|
generated += $(some-if-rtn).d
|
|
|
|
|
endif
|
1995-02-18 01:27:10 +00:00
|
|
|
|
|
Thu Mar 16 00:04:41 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* locale/C-ctype.c: New correct data generated by drepper.
* Rules: Don't use $(libc.a).
Parsing of grouped numbers contributed by Ulrich Drepper.
* stdlib/strtol.c (__strtol_internal): Renamed from strtol. Take
new flag arg; if nonzero, parse locale-dependent thousands
grouping and interpret only the prefix that is correctly grouped.
(strtol): Define this to call _strtol_internal with zero for the flag.
Use a weak symbol for the definition.
* stdlib/strtod.c (strtod, __strtod_internal): Likewise.
Check for the exponent of the number overflowing the float format.
* stdlib/stdlib.h (__strtof, __strtold): Declarations removed.
(__strto{f,d,ld,l,ul,q,uq}_internal): Declare these functions.
[__OPTIMIZE__]: Define inline functions calling those.
* stdlib/grouping.h: New file, written by drepper.
* stdlib/Makefile (distribute): Add grouping.h.
* stdio/vfscanf.c: Grok %' modifier to numeric conversions. Call
__strtoX_internal with the grouping flag set iff the modifier is
present.
Wed Mar 15 00:40:54 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* sysdeps/generic/memchr.c: Fix typos: limit.h -> limits.h.
* mach/Machrules: Produce static deps for all object flavors.
[interface-library]: Remove all these variables and rules.
($(interface-library)-routines): Define this variable.
(extra-libs): Append $(interface-library) to this.
* mach/Makefile (interface-library): Omit .a suffix.
* hurd/Makefile: Likewise.
Tue Mar 14 23:40:31 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* stdio/internals.c (flushbuf): If !FLUSH_ONLY, don't skip out
early if no new data in buffer after priming.
* Makerules (object-suffixes, libtypes): Move all these variables
to Makeconfig.
* Makeconfig (object-suffixes, libtypes): Moved here from Makerules.
* Makerules (build-extra-lib): New canned sequence.
* sysdeps/mach/hurd/euidaccess.c: Include fcntl.h. Declare ERR;
fix uses of FILE and PORT. Remove bogus weak alias for `access'.
* sysdeps/mach/hurd/dirfd.c: Include hurd/fd.h and errno.h.
Add missing semicolon.
* sysdeps/mach/hurd/opendir.c: Include hurd/fd.h. Use a `struct
hurd_fd *' temp var, since DIRP->__fd is a `void *'.
* sysdeps/mach/hurd/readdir.c: Include hurd/fd.h.
* stdlib/wcstombs.c: #if 0 out code for non-ASCII chars until the
locale data format is implemented.
* sysdeps/mach/hurd/i386/trampoline.c (_hurd_setup_sighandler):
Pass &__sigreturn on the stack to the trampoline code, so it is
not position-dependent.
* stdio/printf_fp.c (NDEBUG): Define this to disable assert.
Don't include <stdarg.h>.
(__printf_fp): Last arg ARGS is now `const void **const';
dereference ARGS[0] instead of using va_arg.
* locale/setlocale.c: In LC_ALL case, initialize CATEGORY before
loop to install data.
* locale/loadlocale.c (_nl_category_num_items): Use _NL_ITEM_INDEX
to extract number from item code.
(_nl_load_locale): Close the descriptor when finished.
* malloc/realloc.c (_realloc_internal): Call _malloc_internal in
place of malloc.
* time/tzfile.c (__tzfile_default): Initialize RULE_STDOFF to zero.
1995-03-16 05:32:45 +00:00
|
|
|
|
# If defined, $(interface-library) is `libNAME'. It is to be a library
|
1995-02-18 01:27:10 +00:00
|
|
|
|
# containing all the MiG-generated functions for the specified interfaces.
|
|
|
|
|
|
|
|
|
|
ifdef interface-library
|
|
|
|
|
|
2017-08-27 20:10:17 +00:00
|
|
|
|
$(interface-library)-routines = $(interface-routines) stack_chk_fail_local
|
Thu Mar 16 00:04:41 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* locale/C-ctype.c: New correct data generated by drepper.
* Rules: Don't use $(libc.a).
Parsing of grouped numbers contributed by Ulrich Drepper.
* stdlib/strtol.c (__strtol_internal): Renamed from strtol. Take
new flag arg; if nonzero, parse locale-dependent thousands
grouping and interpret only the prefix that is correctly grouped.
(strtol): Define this to call _strtol_internal with zero for the flag.
Use a weak symbol for the definition.
* stdlib/strtod.c (strtod, __strtod_internal): Likewise.
Check for the exponent of the number overflowing the float format.
* stdlib/stdlib.h (__strtof, __strtold): Declarations removed.
(__strto{f,d,ld,l,ul,q,uq}_internal): Declare these functions.
[__OPTIMIZE__]: Define inline functions calling those.
* stdlib/grouping.h: New file, written by drepper.
* stdlib/Makefile (distribute): Add grouping.h.
* stdio/vfscanf.c: Grok %' modifier to numeric conversions. Call
__strtoX_internal with the grouping flag set iff the modifier is
present.
Wed Mar 15 00:40:54 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* sysdeps/generic/memchr.c: Fix typos: limit.h -> limits.h.
* mach/Machrules: Produce static deps for all object flavors.
[interface-library]: Remove all these variables and rules.
($(interface-library)-routines): Define this variable.
(extra-libs): Append $(interface-library) to this.
* mach/Makefile (interface-library): Omit .a suffix.
* hurd/Makefile: Likewise.
Tue Mar 14 23:40:31 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* stdio/internals.c (flushbuf): If !FLUSH_ONLY, don't skip out
early if no new data in buffer after priming.
* Makerules (object-suffixes, libtypes): Move all these variables
to Makeconfig.
* Makeconfig (object-suffixes, libtypes): Moved here from Makerules.
* Makerules (build-extra-lib): New canned sequence.
* sysdeps/mach/hurd/euidaccess.c: Include fcntl.h. Declare ERR;
fix uses of FILE and PORT. Remove bogus weak alias for `access'.
* sysdeps/mach/hurd/dirfd.c: Include hurd/fd.h and errno.h.
Add missing semicolon.
* sysdeps/mach/hurd/opendir.c: Include hurd/fd.h. Use a `struct
hurd_fd *' temp var, since DIRP->__fd is a `void *'.
* sysdeps/mach/hurd/readdir.c: Include hurd/fd.h.
* stdlib/wcstombs.c: #if 0 out code for non-ASCII chars until the
locale data format is implemented.
* sysdeps/mach/hurd/i386/trampoline.c (_hurd_setup_sighandler):
Pass &__sigreturn on the stack to the trampoline code, so it is
not position-dependent.
* stdio/printf_fp.c (NDEBUG): Define this to disable assert.
Don't include <stdarg.h>.
(__printf_fp): Last arg ARGS is now `const void **const';
dereference ARGS[0] instead of using va_arg.
* locale/setlocale.c: In LC_ALL case, initialize CATEGORY before
loop to install data.
* locale/loadlocale.c (_nl_category_num_items): Use _NL_ITEM_INDEX
to extract number from item code.
(_nl_load_locale): Close the descriptor when finished.
* malloc/realloc.c (_realloc_internal): Call _malloc_internal in
place of malloc.
* time/tzfile.c (__tzfile_default): Initialize RULE_STDOFF to zero.
1995-03-16 05:32:45 +00:00
|
|
|
|
extra-libs += $(interface-library)
|
1999-03-20 15:05:23 +00:00
|
|
|
|
extra-libs-others += $(interface-library)
|
1995-02-18 01:27:10 +00:00
|
|
|
|
|
1999-03-23 18:05:48 +00:00
|
|
|
|
ifeq (yes,$(build-shared))
|
|
|
|
|
interface.so = $(interface-library:=.so)
|
|
|
|
|
|
|
|
|
|
# Depend on libc.so so a DT_NEEDED is generated in the shared objects.
|
|
|
|
|
$(objpfx)$(interface.so): $(common-objpfx)libc.so
|
|
|
|
|
endif
|
1995-04-24 09:00:07 +00:00
|
|
|
|
|
1995-02-18 01:27:10 +00:00
|
|
|
|
endif
|