From 0ac35d181edd38563f95c3b38e74476bfbff76d3 Mon Sep 17 00:00:00 2001 From: Arjun Shankar Date: Mon, 2 Oct 2023 14:55:17 +0200 Subject: [PATCH] Remove 'pwd' and merge into 'nss' The majority of pwd routines are entry points for nss functionality. This commit removes the 'pwd' subdirectory and moves all functionality and tests to 'nss'. References to pwd/ are accordingly changed. Reviewed-by: Adhemerval Zanella --- Makeconfig | 2 +- include/pwd.h | 2 +- nss/Makefile | 24 +++++++++++++++++++++ nss/Versions | 8 +++++++ {pwd => nss}/fgetpwent.c | 0 {pwd => nss}/fgetpwent_r.c | 0 {pwd => nss}/getpw.c | 0 {pwd => nss}/getpwent.c | 0 {pwd => nss}/getpwent_r.c | 0 {pwd => nss}/getpwnam.c | 0 {pwd => nss}/getpwnam_r.c | 0 {pwd => nss}/getpwuid.c | 0 {pwd => nss}/getpwuid_r.c | 0 {pwd => nss}/putpwent.c | 0 {pwd => nss}/pwd.h | 0 {pwd => nss}/tst-getpw.c | 0 {pwd => nss}/tst-putpwent.c | 0 pwd/Makefile | 42 ------------------------------------- pwd/Versions | 19 ----------------- 19 files changed, 34 insertions(+), 63 deletions(-) rename {pwd => nss}/fgetpwent.c (100%) rename {pwd => nss}/fgetpwent_r.c (100%) rename {pwd => nss}/getpw.c (100%) rename {pwd => nss}/getpwent.c (100%) rename {pwd => nss}/getpwent_r.c (100%) rename {pwd => nss}/getpwnam.c (100%) rename {pwd => nss}/getpwnam_r.c (100%) rename {pwd => nss}/getpwuid.c (100%) rename {pwd => nss}/getpwuid_r.c (100%) rename {pwd => nss}/putpwent.c (100%) rename {pwd => nss}/pwd.h (100%) rename {pwd => nss}/tst-getpw.c (100%) rename {pwd => nss}/tst-putpwent.c (100%) delete mode 100644 pwd/Makefile delete mode 100644 pwd/Versions 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; - } -}