diff --git a/lib/libc/gen/gen-compat.h b/lib/libc/gen/gen-compat.h --- a/lib/libc/gen/gen-compat.h +++ b/lib/libc/gen/gen-compat.h @@ -40,24 +40,36 @@ struct freebsd11_dirent *freebsd11_readdir(DIR *); int freebsd11_readdir_r(DIR *, struct freebsd11_dirent *, struct freebsd11_dirent **); -int freebsd11_stat(const char *, struct freebsd11_stat *); -int freebsd11_lstat(const char *, struct freebsd11_stat *); -int freebsd11_fstat(int, struct freebsd11_stat *); -int freebsd11_fstatat(int, const char *, struct freebsd11_stat *, int); -int freebsd11_statfs(const char *, struct freebsd11_statfs *); -int freebsd11_getfsstat(struct freebsd11_statfs *, long, int); int freebsd11_getmntinfo(struct freebsd11_statfs **, int); char *freebsd11_devname(__uint32_t dev, __mode_t type); char *freebsd11_devname_r(__uint32_t dev, __mode_t type, char *buf, int len); -#define F14SG int freebsd14_setgroups(int gidsize, const __gid_t *gidset) #ifdef PIC -static F14SG __attribute__((__weakref__("setgroups@FBSD_1.0"))); +#define FXX(rtype, fun, args, ver) \ + static rtype fun args __attribute__((__weakref__(#ver))); #else -F14SG; +#define FXX(rtype, fun, args, ver) \ + rtype fun args; #endif -#undef F14SG + +FXX(int, freebsd11_stat, (const char *, struct freebsd11_stat *), + stat@FBSD_1.0); +FXX(int, freebsd11_lstat, (const char *, struct freebsd11_stat *), + lstat@FBSD_1.0); +FXX(int, freebsd11_fstat, (int, struct freebsd11_stat *), fstat@FBSD_1.0); +FXX(int, freebsd11_fstatat, (int, const char *, struct freebsd11_stat *, int), + fstatat@FBSD_1.1); + +FXX(int, freebsd11_statfs, (const char *, struct freebsd11_statfs *), + statfs@FBSD_1.0); +FXX(int, freebsd11_getfsstat, (struct freebsd11_statfs *, long, int), + getfsstat@FBSD_1.0); + +FXX(int, freebsd14_setgroups, (int gidsize, const __gid_t *gidset), + setgroups@FBSD_1.0); + +#undef FXX #endif /* _GEN_COMPAT_H_ */ diff --git a/lib/libsys/Symbol.map b/lib/libsys/Symbol.map --- a/lib/libsys/Symbol.map +++ b/lib/libsys/Symbol.map @@ -4,10 +4,4 @@ __getosreldate; __libsys_interposing_slot; _elf_aux_info; - freebsd11_fstat; - freebsd11_fstatat; - freebsd11_getfsstat; - freebsd11_lstat; - freebsd11_stat; - freebsd11_statfs; };