Page MenuHomeFreeBSD

D26020.id75653.diff
No OneTemporary

D26020.id75653.diff

Index: head/lib/libc/gen/Makefile.inc
===================================================================
--- head/lib/libc/gen/Makefile.inc
+++ head/lib/libc/gen/Makefile.inc
@@ -120,6 +120,7 @@
recvmmsg.c \
rewinddir.c \
scandir.c \
+ scandir_b.c \
scandir-compat11.c \
seed48.c \
seekdir.c \
Index: head/lib/libc/gen/Symbol.map
===================================================================
--- head/lib/libc/gen/Symbol.map
+++ head/lib/libc/gen/Symbol.map
@@ -416,7 +416,6 @@
readdir;
readdir_r;
scandir;
- scandir_b;
sem_clockwait_np;
setproctitle_fast;
timespec_get;
@@ -424,6 +423,7 @@
FBSD_1.6 {
memalign;
+ scandir_b;
sigandset;
sigisemptyset;
sigorset;
Index: head/lib/libc/gen/scandir-compat11.c
===================================================================
--- head/lib/libc/gen/scandir-compat11.c
+++ head/lib/libc/gen/scandir-compat11.c
@@ -49,32 +49,25 @@
#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 @@
}
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 @@
__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);
Index: head/lib/libc/gen/scandir.c
===================================================================
--- head/lib/libc/gen/scandir.c
+++ head/lib/libc/gen/scandir.c
@@ -50,8 +50,7 @@
#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 @@
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 @@
dc = *(int (**)(const struct dirent **, const struct dirent **))thunk;
return (dc((const struct dirent **)p1, (const struct dirent **)p2));
}
+#endif

File Metadata

Mime Type
text/plain
Expires
Sat, Oct 10, 11:11 AM (5 h, 15 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
40542071
Default Alt Text
D26020.id75653.diff (3 KB)

Event Timeline