diff --git a/Makeconfig b/Makeconfig index ac7fa3dbb3..e5badddbc4 100644 --- a/Makeconfig +++ b/Makeconfig @@ -1352,7 +1352,7 @@ endif # dependencies and generate sorted-subdirs dynamically. all-subdirs = csu assert ctype locale intl catgets math setjmp signal \ stdlib stdio-common libio malloc string wcsmbs time dirent \ - pwd posix io termios resource misc socket sysvipc gmon \ + posix io termios resource misc socket sysvipc gmon \ gnulib iconv iconvdata wctype manual shadow po argp \ localedata timezone rt conform debug mathvec support \ dlfcn elf diff --git a/include/pwd.h b/include/pwd.h index f8975d4957..c4ca8bab33 100644 --- a/include/pwd.h +++ b/include/pwd.h @@ -1,5 +1,5 @@ #ifndef _PWD_H -#include +#include #ifndef _ISOMAC /* Now define the internal interfaces. */ diff --git a/nss/Makefile b/nss/Makefile index 5256b90f8b..28648ea884 100644 --- a/nss/Makefile +++ b/nss/Makefile @@ -26,6 +26,7 @@ headers := \ grp.h \ gshadow.h \ nss.h \ + pwd.h \ # headers # This is the trivial part which goes into libc itself. @@ -103,6 +104,27 @@ CFLAGS-getsgnam.c += -fexceptions CFLAGS-getsgnam_r.c += -fexceptions endif +# pwd routines: +routines += \ + fgetpwent \ + fgetpwent_r \ + getpw \ + getpwent \ + getpwent_r \ + getpwnam \ + getpwnam_r \ + getpwuid \ + getpwuid_r \ + putpwent \ + # routines + +ifeq ($(have-thread-library),yes) +CFLAGS-fgetpwent_r.c += $(libio-mtsafe) +CFLAGS-getpw.c += -fexceptions +CFLAGS-getpwent.c += -fexceptions +CFLAGS-getpwent_r.c += -fexceptions +endif + # These are the databases that go through nss dispatch. # Caution: if you add a database here, you must add its real name # in databases.def, too. @@ -143,6 +165,7 @@ tests := \ test-netdb \ testgrp \ tst-fgetsgent_r \ + tst-getpw \ tst-gshadow \ tst-nss-getpwent \ tst-nss-hash \ @@ -152,6 +175,7 @@ tests := \ tst-nss-test5 \ tst-nss-test_errno \ tst-putgrent \ + tst-putpwent \ tst-putsgent \ tst-sgetsgent \ # tests diff --git a/nss/Versions b/nss/Versions index 6204ac0af1..58ca73c9df 100644 --- a/nss/Versions +++ b/nss/Versions @@ -8,19 +8,26 @@ libc { # e* endgrent; + endpwent; # f* fgetgrent; fgetgrent_r; + fgetpwent; fgetpwent_r; # g* getgrent; getgrent_r; getgrgid; getgrgid_r; getgrnam; getgrnam_r; getgroups; + getpw; getpwent; getpwent_r; getpwnam; getpwnam_r; getpwuid; getpwuid_r; # i* initgroups; + # p* + putpwent; + # s* setgrent; + setpwent; } GLIBC_2.1 { # p* @@ -29,6 +36,7 @@ libc { GLIBC_2.1.2 { # g* getgrent_r; getgrgid_r; getgrnam_r; + getpwent_r; getpwuid_r; getpwnam_r; } GLIBC_2.2.2 { __nss_hostname_digits_dots; diff --git a/pwd/fgetpwent.c b/nss/fgetpwent.c similarity index 100% rename from pwd/fgetpwent.c rename to nss/fgetpwent.c diff --git a/pwd/fgetpwent_r.c b/nss/fgetpwent_r.c similarity index 100% rename from pwd/fgetpwent_r.c rename to nss/fgetpwent_r.c diff --git a/pwd/getpw.c b/nss/getpw.c similarity index 100% rename from pwd/getpw.c rename to nss/getpw.c diff --git a/pwd/getpwent.c b/nss/getpwent.c similarity index 100% rename from pwd/getpwent.c rename to nss/getpwent.c diff --git a/pwd/getpwent_r.c b/nss/getpwent_r.c similarity index 100% rename from pwd/getpwent_r.c rename to nss/getpwent_r.c diff --git a/pwd/getpwnam.c b/nss/getpwnam.c similarity index 100% rename from pwd/getpwnam.c rename to nss/getpwnam.c diff --git a/pwd/getpwnam_r.c b/nss/getpwnam_r.c similarity index 100% rename from pwd/getpwnam_r.c rename to nss/getpwnam_r.c diff --git a/pwd/getpwuid.c b/nss/getpwuid.c similarity index 100% rename from pwd/getpwuid.c rename to nss/getpwuid.c diff --git a/pwd/getpwuid_r.c b/nss/getpwuid_r.c similarity index 100% rename from pwd/getpwuid_r.c rename to nss/getpwuid_r.c diff --git a/pwd/putpwent.c b/nss/putpwent.c similarity index 100% rename from pwd/putpwent.c rename to nss/putpwent.c diff --git a/pwd/pwd.h b/nss/pwd.h similarity index 100% rename from pwd/pwd.h rename to nss/pwd.h diff --git a/pwd/tst-getpw.c b/nss/tst-getpw.c similarity index 100% rename from pwd/tst-getpw.c rename to nss/tst-getpw.c diff --git a/pwd/tst-putpwent.c b/nss/tst-putpwent.c similarity index 100% rename from pwd/tst-putpwent.c rename to nss/tst-putpwent.c diff --git a/pwd/Makefile b/pwd/Makefile deleted file mode 100644 index d85842af3e..0000000000 --- a/pwd/Makefile +++ /dev/null @@ -1,42 +0,0 @@ -# Copyright (C) 1991-2023 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 -# . - -# -# Sub-makefile for pwd portion of the library. -# -subdir := pwd - -include ../Makeconfig - -headers := pwd.h - -routines := fgetpwent getpw putpwent \ - getpwent getpwnam getpwuid \ - getpwent_r getpwnam_r getpwuid_r fgetpwent_r - -tests := tst-getpw tst-putpwent - -include ../Rules - -ifeq ($(have-thread-library),yes) - -CFLAGS-getpwent_r.c += -fexceptions -CFLAGS-getpwent.c += -fexceptions -CFLAGS-getpw.c += -fexceptions -CFLAGS-fgetpwent_r.c += $(libio-mtsafe) - -endif diff --git a/pwd/Versions b/pwd/Versions deleted file mode 100644 index b56970019a..0000000000 --- a/pwd/Versions +++ /dev/null @@ -1,19 +0,0 @@ -libc { - GLIBC_2.0 { - # e* - endpwent; - - # f* - fgetpwent; fgetpwent_r; - - # g* - getpw; getpwent; getpwent_r; getpwnam; getpwnam_r; getpwuid; getpwuid_r; - - # p* - putpwent; setpwent; - } - GLIBC_2.1.2 { - # g* - getpwent_r; getpwuid_r; getpwnam_r; - } -}