Author: kib
Date: Mon Aug 17 16:27:02 2020
New Revision: 364311
URL: https://svnweb.freebsd.org/changeset/base/364311

Log:
  MFC r364091:
  Export scandir_b from libc.
  
  PR:   248572

Modified:
  stable/12/lib/libc/gen/Makefile.inc
  stable/12/lib/libc/gen/Symbol.map
  stable/12/lib/libc/gen/scandir-compat11.c
  stable/12/lib/libc/gen/scandir.c
Directory Properties:
  stable/12/   (props changed)

Modified: stable/12/lib/libc/gen/Makefile.inc
==============================================================================
--- stable/12/lib/libc/gen/Makefile.inc Mon Aug 17 15:37:08 2020        
(r364310)
+++ stable/12/lib/libc/gen/Makefile.inc Mon Aug 17 16:27:02 2020        
(r364311)
@@ -110,6 +110,7 @@ SRCS+=      __getosreldate.c \
        recvmmsg.c \
        rewinddir.c \
        scandir.c \
+       scandir_b.c \
        seed48.c \
        seekdir.c \
        semctl.c \

Modified: stable/12/lib/libc/gen/Symbol.map
==============================================================================
--- stable/12/lib/libc/gen/Symbol.map   Mon Aug 17 15:37:08 2020        
(r364310)
+++ stable/12/lib/libc/gen/Symbol.map   Mon Aug 17 16:27:02 2020        
(r364311)
@@ -416,7 +416,6 @@ FBSD_1.5 {
        readdir;
        readdir_r;
        scandir;
-       scandir_b;
        sem_clockwait_np;
        setproctitle_fast;
        timespec_get;
@@ -425,6 +424,7 @@ FBSD_1.5 {
 FBSD_1.6 {
        __sysctlbyname;
        memalign;
+       scandir_b;
        sigandset;
        sigisemptyset;
        sigorset;

Modified: stable/12/lib/libc/gen/scandir-compat11.c
==============================================================================
--- stable/12/lib/libc/gen/scandir-compat11.c   Mon Aug 17 15:37:08 2020        
(r364310)
+++ stable/12/lib/libc/gen/scandir-compat11.c   Mon Aug 17 16:27:02 2020        
(r364311)
@@ -49,32 +49,25 @@ __FBSDID("$FreeBSD$");
 
 #include "gen-compat.h"
 
-#ifdef I_AM_SCANDIR_B
-#include "block_abi.h"
-#define        SELECT(x)       CALL_BLOCK(select, x)
-#ifndef __BLOCKS__
-void
-qsort_b(void *, size_t, size_t, void*);
-#endif
-#else
+/*
+ * scandir_b@FBSD_1.4 was never exported from libc.so.7 due to a
+ * mistake, so there is no use of exporting it now with some earlier
+ * symbol version.  As result, we do not need to implement compat
+ * function freebsd11_scandir_b().
+ */
+
 #define        SELECT(x)       select(x)
-#endif
 
+void qsort_b(void *, size_t, size_t, void *);
+
 static int freebsd11_alphasort_thunk(void *thunk, const void *p1,
     const void *p2);
 
 int
-#ifdef I_AM_SCANDIR_B
-freebsd11_scandir_b(const char *dirname, struct freebsd11_dirent ***namelist,
-    DECLARE_BLOCK(int, select, const struct freebsd11_dirent *),
-    DECLARE_BLOCK(int, dcomp, const struct freebsd11_dirent **,
-    const struct freebsd11_dirent **))
-#else
 freebsd11_scandir(const char *dirname, struct freebsd11_dirent ***namelist,
     int (*select)(const struct freebsd11_dirent *),
     int (*dcomp)(const struct freebsd11_dirent **,
        const struct freebsd11_dirent **))
-#endif
 {
        struct freebsd11_dirent *d, *p, **names = NULL;
        size_t arraysz, numitems;
@@ -124,13 +117,8 @@ freebsd11_scandir(const char *dirname, struct freebsd1
        }
        closedir(dirp);
        if (numitems && dcomp != NULL)
-#ifdef I_AM_SCANDIR_B
-               qsort_b(names, numitems, sizeof(struct freebsd11_dirent *),
-                   (void*)dcomp);
-#else
                qsort_r(names, numitems, sizeof(struct freebsd11_dirent *),
                    &dcomp, freebsd11_alphasort_thunk);
-#endif
        *namelist = names;
        return (numitems);
 
@@ -168,4 +156,3 @@ freebsd11_alphasort_thunk(void *thunk, const void *p1,
 
 __sym_compat(alphasort, freebsd11_alphasort, FBSD_1.0);
 __sym_compat(scandir, freebsd11_scandir, FBSD_1.0);
-__sym_compat(scandir_b, freebsd11_scandir_b, FBSD_1.4);

Modified: stable/12/lib/libc/gen/scandir.c
==============================================================================
--- stable/12/lib/libc/gen/scandir.c    Mon Aug 17 15:37:08 2020        
(r364310)
+++ stable/12/lib/libc/gen/scandir.c    Mon Aug 17 16:27:02 2020        
(r364311)
@@ -50,8 +50,7 @@ __FBSDID("$FreeBSD$");
 #include "block_abi.h"
 #define        SELECT(x)       CALL_BLOCK(select, x)
 #ifndef __BLOCKS__
-void
-qsort_b(void *, size_t, size_t, void*);
+void qsort_b(void *, size_t, size_t, void *);
 #endif
 #else
 #define        SELECT(x)       select(x)
@@ -134,6 +133,7 @@ fail:
        return (-1);
 }
 
+#ifndef I_AM_SCANDIR_B
 /*
  * Alphabetic order comparison routine for those who want it.
  * POSIX 2008 requires that alphasort() uses strcoll().
@@ -153,3 +153,4 @@ alphasort_thunk(void *thunk, const void *p1, const voi
        dc = *(int (**)(const struct dirent **, const struct dirent **))thunk;
        return (dc((const struct dirent **)p1, (const struct dirent **)p2));
 }
+#endif
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"

Reply via email to