mirror of
git://sourceware.org/git/glibc.git
synced 2024-11-27 03:41:23 +08:00
0516e24d18
The conform/ tests test -D_XOPEN_SOURCE under the name "XPG3", and -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED under the name "XPG4". That naming is misleading. _XOPEN_SOURCE_EXTENDED actually means XPG4.2, including UX-shaded interfaces. _XOPEN_SOURCE actually means XPG4, or XPG4.2 without UX-shaded interfaces. (Prior XPG versions also used _XOPEN_SOURCE, but without any versioning of the values of the macro, so XPG4.2 without UX-shaded interfaces is the only sensible set of interfaces for glibc to expose given _XOPEN_SOURCE=1 without _XOPEN_SOURCE_EXTENDED defined.) This patch fixes the naming in the conform/ tests, so that what is now called XPG4 is changed to XPG42, and what is now called XPG3 is changed to XPG4. Tested for x86_64 (and verified the complete set of expectations is unchanged by the patch beyond the intended renaming). * conform/GlibcConform.pm (XPG4): Rename standard to XPG42. (XPG3): Rename standard to XPG4. * conform/Makefile: Likewise. * conform/list-header-symbols.pl: Likewise. * conform/data/aio.h-data: Likewise. * conform/data/arpa/inet.h-data: Likewise. * conform/data/complex.h-data: Likewise. * conform/data/ctype.h-data: Likewise. * conform/data/dlfcn.h-data: Likewise. * conform/data/fcntl.h-data: Likewise. * conform/data/fenv.h-data: Likewise. * conform/data/float.h-data: Likewise. * conform/data/fmtmsg.h-data: Likewise. * conform/data/ftw.h-data: Likewise. * conform/data/grp.h-data: Likewise. * conform/data/inttypes.h-data: Likewise. * conform/data/iso646.h-data: Likewise. * conform/data/langinfo.h-data: Likewise. * conform/data/libgen.h-data: Likewise. * conform/data/limits.h-data: Likewise. * conform/data/locale.h-data: Likewise. * conform/data/math.h-data: Likewise. * conform/data/mqueue.h-data: Likewise. * conform/data/ndbm.h-data: Likewise. * conform/data/net/if.h-data: Likewise. * conform/data/netdb.h-data: Likewise. * conform/data/netinet/in.h-data: Likewise. * conform/data/poll.h-data: Likewise. * conform/data/pthread.h-data: Likewise. * conform/data/pwd.h-data: Likewise. * conform/data/sched.h-data: Likewise. * conform/data/search.h-data: Likewise. * conform/data/semaphore.h-data: Likewise. * conform/data/signal.h-data: Likewise. * conform/data/spawn.h-data: Likewise. * conform/data/stdbool.h-data: Likewise. * conform/data/stdint.h-data: Likewise. * conform/data/stdio.h-data: Likewise. * conform/data/stdlib.h-data: Likewise. * conform/data/string.h-data: Likewise. * conform/data/strings.h-data: Likewise. * conform/data/stropts.h-data: Likewise. * conform/data/sys/mman.h-data: Likewise. * conform/data/sys/resource.h-data: Likewise. * conform/data/sys/select.h-data: Likewise. * conform/data/sys/socket.h-data: Likewise. * conform/data/sys/stat.h-data: Likewise. * conform/data/sys/statvfs.h-data: Likewise. * conform/data/sys/time.h-data: Likewise. * conform/data/sys/timeb.h-data: Likewise. * conform/data/sys/types.h-data: Likewise. * conform/data/sys/uio.h-data: Likewise. * conform/data/sys/un.h-data: Likewise. * conform/data/sys/wait.h-data: Likewise. * conform/data/syslog.h-data: Likewise. * conform/data/termios.h-data: Likewise. * conform/data/tgmath.h-data: Likewise. * conform/data/time.h-data: Likewise. * conform/data/ucontext.h-data: Likewise. * conform/data/unistd.h-data: Likewise. * conform/data/utmpx.h-data: Likewise. * conform/data/varargs.h-data: Likewise. * conform/data/wchar.h-data: Likewise. * conform/data/wctype.h-data: Likewise.
84 lines
3.5 KiB
Raku
84 lines
3.5 KiB
Raku
#!/usr/bin/perl
|
|
|
|
# Print a list of symbols exported by some headers that would
|
|
# otherwise be in the user's namespace.
|
|
|
|
# Copyright (C) 2014-2017 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/>.
|
|
|
|
use GlibcConform;
|
|
use Getopt::Long;
|
|
|
|
GetOptions ('headers=s' => \$headers, 'standard=s' => \$standard,
|
|
'flags=s' => \$flags, 'cc=s' => \$CC, 'tmpdir=s' => \$tmpdir);
|
|
@headers = split (/\s+/, $headers);
|
|
|
|
# Extra symbols possibly not found through -aux-info but still
|
|
# reserved by the standard: either data symbols, or symbols where the
|
|
# standard leaves unspecified whether the identifier is a macro or
|
|
# defined with external linkage.
|
|
$extra_syms{"ISO"} = ["errno", "setjmp", "va_end"];
|
|
$extra_syms{"ISO99"} = ["errno", "math_errhandling", "setjmp", "va_end"];
|
|
# stdatomic.h not yet covered by conformance tests; as per DR#419, all
|
|
# the generic functions there or may not be defined with external
|
|
# linkage (but are reserved in any case).
|
|
$extra_syms{"ISO11"} = ["errno", "math_errhandling", "setjmp", "va_end"];
|
|
# The following lists may not be exhaustive.
|
|
$extra_syms{"POSIX"} = ["errno", "setjmp", "va_end", "environ", "sigsetjmp",
|
|
"optarg", "optind", "opterr", "optopt", "tzname"];
|
|
$extra_syms{"XPG4"} = ["errno", "setjmp", "va_end", "environ", "signgam",
|
|
"loc1", "loc2", "locs", "sigsetjmp", "optarg",
|
|
"optind", "opterr", "optopt", "daylight", "timezone",
|
|
"tzname"];
|
|
$extra_syms{"XPG42"} = ["errno", "setjmp", "va_end", "environ", "signgam",
|
|
"loc1", "loc2", "locs", "sigsetjmp", "optarg",
|
|
"optind", "opterr", "optopt", "daylight", "timezone",
|
|
"tzname", "getdate_err", "h_errno"];
|
|
$extra_syms{"UNIX98"} = ["errno", "setjmp", "va_end", "environ", "signgam",
|
|
"loc1", "loc2", "locs", "sigsetjmp", "optarg",
|
|
"optind", "opterr", "optopt", "daylight", "timezone",
|
|
"tzname", "getdate_err", "h_errno"];
|
|
$extra_syms{"XOPEN2K"} = ["errno", "setjmp", "va_end", "environ", "signgam",
|
|
"sigsetjmp", "optarg", "optind", "opterr", "optopt",
|
|
"daylight", "timezone", "tzname", "getdate_err",
|
|
"h_errno", "in6addr_any", "in6addr_loopback"];
|
|
$extra_syms{"XOPEN2K8"} = ["errno", "setjmp", "va_end", "environ", "signgam",
|
|
"sigsetjmp", "optarg", "optind", "opterr", "optopt",
|
|
"daylight", "timezone", "tzname", "getdate_err",
|
|
"in6addr_any", "in6addr_loopback"];
|
|
$extra_syms{"POSIX2008"} = ["errno", "setjmp", "va_end", "environ",
|
|
"sigsetjmp", "optarg", "optind", "opterr", "optopt",
|
|
"tzname", "in6addr_any", "in6addr_loopback"];
|
|
|
|
%user_syms = ();
|
|
|
|
foreach my $header (@headers) {
|
|
@syms = list_exported_functions ("$CC $flags", $standard, $header, $tmpdir);
|
|
foreach my $sym (@syms) {
|
|
if ($sym !~ /^_/) {
|
|
$user_syms{$sym} = 1;
|
|
}
|
|
}
|
|
}
|
|
foreach my $sym (@{$extra_syms{$standard}}) {
|
|
$user_syms{$sym} = 1;
|
|
}
|
|
|
|
foreach my $sym (sort keys %user_syms) {
|
|
print "$sym\n";
|
|
}
|