Use intra-DSO calls when we build libbusybox. No-op for normal build.

This was Bernhard Fischer' idea.

   text    data     bss     dec     hex filename
 773549    7781    9740  791070   c121e busybox.t7/0_lib/libbusybox.so.1.11.0.svn_unstripped
 769683    7397    9740  786820   c0184 busybox.t9t/0_lib/libbusybox.so.1.11.0.svn_unstripped
This commit is contained in:
Denis Vlasenko 2008-05-09 17:59:34 +00:00
parent 50dbed95fb
commit 98636eb08c
27 changed files with 263 additions and 66 deletions

View File

@ -6,6 +6,10 @@
#ifndef COREUTILS_H #ifndef COREUTILS_H
#define COREUTILS_H 1 #define COREUTILS_H 1
#if __GNUC_PREREQ(4,1)
# pragma GCC visibility push(hidden)
#endif
typedef int (*stat_func)(const char *fn, struct stat *ps); typedef int (*stat_func)(const char *fn, struct stat *ps);
int cp_mv_stat2(const char *fn, struct stat *fn_stat, stat_func sf); int cp_mv_stat2(const char *fn, struct stat *fn_stat, stat_func sf);
@ -13,4 +17,8 @@ int cp_mv_stat(const char *fn, struct stat *fn_stat);
mode_t getopt_mk_fifo_nod(char **argv); mode_t getopt_mk_fifo_nod(char **argv);
#if __GNUC_PREREQ(4,1)
# pragma GCC visibility pop
#endif
#endif #endif

View File

@ -9,6 +9,10 @@
/* Constants and structures */ /* Constants and structures */
#include "e2fs_defs.h" #include "e2fs_defs.h"
#if __GNUC_PREREQ(4,1)
# pragma GCC visibility push(hidden)
#endif
/* Iterate a function on each entry of a directory */ /* Iterate a function on each entry of a directory */
int iterate_on_dir(const char *dir_name, int iterate_on_dir(const char *dir_name,
int (*func)(const char *, struct dirent *, void *), int (*func)(const char *, struct dirent *, void *),
@ -41,3 +45,7 @@ extern const char e2attr_flags_sname[];
#define e2attr_flags_value_chattr (&e2attr_flags_value[1]) #define e2attr_flags_value_chattr (&e2attr_flags_value[1])
#define e2attr_flags_sname_chattr (&e2attr_flags_sname[1]) #define e2attr_flags_sname_chattr (&e2attr_flags_sname[1])
#endif #endif
#if __GNUC_PREREQ(4,1)
# pragma GCC visibility pop
#endif

View File

@ -9,6 +9,10 @@
#include "libbb.h" #include "libbb.h"
#if __GNUC_PREREQ(4,1)
# pragma GCC visibility push(hidden)
#endif
/* order matters: used as index into "install_dir[]" in appletlib.c */ /* order matters: used as index into "install_dir[]" in appletlib.c */
typedef enum bb_install_loc_t { typedef enum bb_install_loc_t {
_BB_DIR_ROOT = 0, _BB_DIR_ROOT = 0,
@ -67,5 +71,8 @@ int lbb_main(char **argv);
#endif #endif
#endif #endif
#if __GNUC_PREREQ(4,1)
# pragma GCC visibility pop
#endif
#endif /* _BB_INTERNAL_H_ */ #endif /* _BB_INTERNAL_H_ */

View File

@ -1,4 +1,9 @@
/* vi: set sw=4 ts=4: */ /* vi: set sw=4 ts=4: */
#if __GNUC_PREREQ(4,1)
# pragma GCC visibility push(hidden)
#endif
#define F_IGNORE 0x01 /* %_A */ #define F_IGNORE 0x01 /* %_A */
#define F_SETREP 0x02 /* rep count set, not default */ #define F_SETREP 0x02 /* rep count set, not default */
#define F_ADDRESS 0x001 /* print offset */ #define F_ADDRESS 0x001 /* print offset */
@ -48,3 +53,7 @@ extern int bb_dump_blocksize; /* data block size */
extern int bb_dump_length; /* max bytes to read */ extern int bb_dump_length; /* max bytes to read */
extern enum _vflag bb_dump_vflag; extern enum _vflag bb_dump_vflag;
extern off_t bb_dump_skip; /* bytes to skip */ extern off_t bb_dump_skip; /* bytes to skip */
#if __GNUC_PREREQ(4,1)
# pragma GCC visibility pop
#endif

View File

@ -21,15 +21,13 @@
* POSIX Standard: 9.2.1 Group Database Access <grp.h> * POSIX Standard: 9.2.1 Group Database Access <grp.h>
*/ */
#if !ENABLE_USE_BB_PWD_GRP
#include <grp.h>
#else
#ifndef _GRP_H #ifndef _GRP_H
#define _GRP_H 1 #define _GRP_H 1
#if __GNUC_PREREQ(4,1)
# pragma GCC visibility push(hidden)
#endif
/* The group structure. */ /* The group structure. */
struct group { struct group {
char *gr_name; /* Group name. */ char *gr_name; /* Group name. */
@ -128,6 +126,8 @@ extern int getgrouplist(__const char *__user, gid_t __group,
of which USER is a member. Also include GROUP. */ of which USER is a member. Also include GROUP. */
extern int initgroups(__const char *__user, gid_t __group); extern int initgroups(__const char *__user, gid_t __group);
#if __GNUC_PREREQ(4,1)
#endif /* grp.h */ # pragma GCC visibility pop
#endif
#endif #endif

View File

@ -65,15 +65,21 @@
#define setlocale(x,y) ((void)0) #define setlocale(x,y) ((void)0)
#endif #endif
#include "pwd_.h" #ifdef DMALLOC
#include "grp_.h" #include <dmalloc.h>
/* ifdef it out, because it may include <shadow.h> */
/* and we may not even _have_ <shadow.h>! */
#if ENABLE_FEATURE_SHADOWPASSWDS
#include "shadow_.h"
#endif #endif
/* Some libc's don't declare it, help them */ #if !ENABLE_USE_BB_PWD_GRP
# include <pwd.h>
# include <grp.h>
#endif
#if ENABLE_FEATURE_SHADOWPASSWDS
# if !ENABLE_USE_BB_SHADOW
# include <shadow.h>
# endif
#endif
/* Some libc's forget to declare these, help them */
extern char **environ; extern char **environ;
#if defined(__GLIBC__) && __GLIBC__ < 2 #if defined(__GLIBC__) && __GLIBC__ < 2
@ -106,6 +112,23 @@ struct sysinfo {
int sysinfo(struct sysinfo* info); int sysinfo(struct sysinfo* info);
/* Make all declarations hidden (-fvisibility flag only affects definitions) */
/* (don't include system headers after this until corresponding pop!) */
#if __GNUC_PREREQ(4,1)
# pragma GCC visibility push(hidden)
#endif
#if ENABLE_USE_BB_PWD_GRP
# include "pwd_.h"
# include "grp_.h"
#endif
#if ENABLE_FEATURE_SHADOWPASSWDS
# if ENABLE_USE_BB_SHADOW
# include "shadow_.h"
# endif
#endif
/* Tested to work correctly with all int types (IIRC :]) */ /* Tested to work correctly with all int types (IIRC :]) */
#define MAXINT(T) (T)( \ #define MAXINT(T) (T)( \
((T)-1) > 0 \ ((T)-1) > 0 \
@ -1344,11 +1367,12 @@ extern const char bb_default_login_shell[];
#undef isdigit #undef isdigit
#define isdigit(a) ((unsigned)((a) - '0') <= 9) #define isdigit(a) ((unsigned)((a) - '0') <= 9)
#ifdef DMALLOC
#include <dmalloc.h>
#endif
#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0])) #define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
#if __GNUC_PREREQ(4,1)
# pragma GCC visibility pop
#endif
#endif /* __LIBBUSYBOX_H__ */ #endif /* __LIBBUSYBOX_H__ */

View File

@ -21,15 +21,13 @@
* POSIX Standard: 9.2.2 User Database Access <pwd.h> * POSIX Standard: 9.2.2 User Database Access <pwd.h>
*/ */
#if !ENABLE_USE_BB_PWD_GRP
#include <pwd.h>
#else
#ifndef _PWD_H #ifndef _PWD_H
#define _PWD_H 1 #define _PWD_H 1
#if __GNUC_PREREQ(4,1)
# pragma GCC visibility push(hidden)
#endif
/* The passwd structure. */ /* The passwd structure. */
struct passwd { struct passwd {
char *pw_name; /* Username. */ char *pw_name; /* Username. */
@ -118,5 +116,8 @@ extern int fgetpwent_r(FILE *__restrict __stream,
will expect, but this need not be the format of the password file. */ will expect, but this need not be the format of the password file. */
extern int getpw(uid_t __uid, char *__buffer); extern int getpw(uid_t __uid, char *__buffer);
#endif /* pwd.h */ #if __GNUC_PREREQ(4,1)
# pragma GCC visibility pop
#endif #endif
#endif /* pwd.h */

View File

@ -9,12 +9,14 @@
#include "libbb.h" #include "libbb.h"
#if __GNUC_PREREQ(4,1)
# pragma GCC visibility push(hidden)
#endif
extern int rtc_adjtime_is_utc(void); extern int rtc_adjtime_is_utc(void);
extern int rtc_xopen(const char **default_rtc, int flags); extern int rtc_xopen(const char **default_rtc, int flags);
extern time_t rtc_read_time(int fd, int utc); extern time_t rtc_read_time(int fd, int utc);
/* /*
* Everything below this point has been copied from linux/rtc.h * Everything below this point has been copied from linux/rtc.h
* to eliminate the kernel header dependency * to eliminate the kernel header dependency
@ -70,4 +72,8 @@ struct linux_rtc_wkalrm {
#define RTC_AF 0x20 #define RTC_AF 0x20
#define RTC_UF 0x10 #define RTC_UF 0x10
#if __GNUC_PREREQ(4,1)
# pragma GCC visibility pop
#endif
#endif #endif

View File

@ -19,15 +19,13 @@
/* Declaration of types and functions for shadow password suite */ /* Declaration of types and functions for shadow password suite */
#if !ENABLE_USE_BB_SHADOW
#include <shadow.h>
#else
#ifndef _SHADOW_H #ifndef _SHADOW_H
#define _SHADOW_H 1 #define _SHADOW_H 1
#if __GNUC_PREREQ(4,1)
# pragma GCC visibility push(hidden)
#endif
/* Paths to the user database files */ /* Paths to the user database files */
#ifndef _PATH_SHADOW #ifndef _PATH_SHADOW
#define _PATH_SHADOW "/etc/shadow" #define _PATH_SHADOW "/etc/shadow"
@ -110,5 +108,8 @@ extern int lckpwdf(void);
/* Unlock password file */ /* Unlock password file */
extern int ulckpwdf(void); extern int ulckpwdf(void);
#endif /* shadow.h */ #if __GNUC_PREREQ(4,1)
# pragma GCC visibility pop
#endif #endif
#endif /* shadow.h */

View File

@ -2,6 +2,10 @@
#ifndef __UNARCHIVE_H__ #ifndef __UNARCHIVE_H__
#define __UNARCHIVE_H__ #define __UNARCHIVE_H__
#if __GNUC_PREREQ(4,1)
# pragma GCC visibility push(hidden)
#endif
#define ARCHIVE_PRESERVE_DATE 1 #define ARCHIVE_PRESERVE_DATE 1
#define ARCHIVE_CREATE_LEADING_DIRS 2 #define ARCHIVE_CREATE_LEADING_DIRS 2
#define ARCHIVE_EXTRACT_UNCONDITIONAL 4 #define ARCHIVE_EXTRACT_UNCONDITIONAL 4
@ -126,4 +130,8 @@ extern int open_transformer(int src_fd, const char *transform_prog);
#define open_transformer(src_fd, transformer, transform_prog) open_transformer(src_fd, transform_prog) #define open_transformer(src_fd, transformer, transform_prog) open_transformer(src_fd, transform_prog)
#endif #endif
#if __GNUC_PREREQ(4,1)
# pragma GCC visibility pop
#endif
#endif #endif

View File

@ -7,6 +7,10 @@
* Licensed under GPLv2, see file LICENSE in this tarball for details. * Licensed under GPLv2, see file LICENSE in this tarball for details.
*/ */
#if __GNUC_PREREQ(4,1)
# pragma GCC visibility push(hidden)
#endif
/* Provides extern declarations of functions */ /* Provides extern declarations of functions */
#define DECLARE_STR_CONV(type, T, UT) \ #define DECLARE_STR_CONV(type, T, UT) \
\ \
@ -166,3 +170,7 @@ uint32_t bb_strtou32(const char *arg, char **endp, int base)
/* Floating point */ /* Floating point */
/* double bb_strtod(const char *arg, char **endp); */ /* double bb_strtod(const char *arg, char **endp); */
#if __GNUC_PREREQ(4,1)
# pragma GCC visibility pop
#endif

View File

@ -12,7 +12,16 @@
#define __BB_REGEX__ #define __BB_REGEX__
#include <regex.h> #include <regex.h>
#if __GNUC_PREREQ(4,1)
# pragma GCC visibility push(hidden)
#endif
char* regcomp_or_errmsg(regex_t *preg, const char *regex, int cflags); char* regcomp_or_errmsg(regex_t *preg, const char *regex, int cflags);
void xregcomp(regex_t *preg, const char *regex, int cflags); void xregcomp(regex_t *preg, const char *regex, int cflags);
#if __GNUC_PREREQ(4,1)
# pragma GCC visibility pop
#endif
#endif #endif

View File

@ -8,6 +8,10 @@
* Licensed under GPL version 2, see file LICENSE in this tarball for details. * Licensed under GPL version 2, see file LICENSE in this tarball for details.
*/ */
#if __GNUC_PREREQ(4,1)
# pragma GCC visibility push(hidden)
#endif
/* opaque structure */ /* opaque structure */
struct isrv_state_t; struct isrv_state_t;
typedef struct isrv_state_t isrv_state_t; typedef struct isrv_state_t isrv_state_t;
@ -31,3 +35,7 @@ void isrv_run(
int timeout, int timeout,
int linger_timeout int linger_timeout
); );
#if __GNUC_PREREQ(4,1)
# pragma GCC visibility pop
#endif

View File

@ -13,6 +13,10 @@
#include <linux/if_link.h> #include <linux/if_link.h>
#endif #endif
#if __GNUC_PREREQ(4,1)
# pragma GCC visibility push(hidden)
#endif
extern char **ip_parse_common_args(char **argv); extern char **ip_parse_common_args(char **argv);
extern int print_neigh(struct sockaddr_nl *who, struct nlmsghdr *n, void *arg); extern int print_neigh(struct sockaddr_nl *who, struct nlmsghdr *n, void *arg);
extern int ipaddr_list_or_flush(char **argv, int flush); extern int ipaddr_list_or_flush(char **argv, int flush);
@ -29,4 +33,9 @@ extern int do_iplink(char **argv);
extern int do_ipmonitor(char **argv); extern int do_ipmonitor(char **argv);
extern int do_multiaddr(char **argv); extern int do_multiaddr(char **argv);
extern int do_multiroute(char **argv); extern int do_multiroute(char **argv);
#if __GNUC_PREREQ(4,1)
# pragma GCC visibility pop
#endif
#endif /* ip_common.h */ #endif /* ip_common.h */

View File

@ -8,6 +8,11 @@
#include <linux/netlink.h> #include <linux/netlink.h>
#include <linux/rtnetlink.h> #include <linux/rtnetlink.h>
#if __GNUC_PREREQ(4,1)
# pragma GCC visibility push(hidden)
#endif
struct rtnl_handle struct rtnl_handle
{ {
int fd; int fd;
@ -43,4 +48,8 @@ extern int rta_addattr_l(struct rtattr *rta, int maxlen, int type, void *data, i
extern int parse_rtattr(struct rtattr *tb[], int max, struct rtattr *rta, int len); extern int parse_rtattr(struct rtattr *tb[], int max, struct rtattr *rta, int len);
#if __GNUC_PREREQ(4,1)
# pragma GCC visibility pop
#endif
#endif /* __LIBNETLINK_H__ */ #endif /* __LIBNETLINK_H__ */

View File

@ -2,6 +2,10 @@
#ifndef __LL_MAP_H__ #ifndef __LL_MAP_H__
#define __LL_MAP_H__ 1 #define __LL_MAP_H__ 1
#if __GNUC_PREREQ(4,1)
# pragma GCC visibility push(hidden)
#endif
int ll_remember_index(struct sockaddr_nl *who, struct nlmsghdr *n, void *arg); int ll_remember_index(struct sockaddr_nl *who, struct nlmsghdr *n, void *arg);
int ll_init_map(struct rtnl_handle *rth); int ll_init_map(struct rtnl_handle *rth);
int xll_name_to_index(const char *const name); int xll_name_to_index(const char *const name);
@ -10,4 +14,8 @@ const char *ll_idx_n2a(int idx, char *buf);
/* int ll_index_to_type(int idx); */ /* int ll_index_to_type(int idx); */
unsigned ll_index_to_flags(int idx); unsigned ll_index_to_flags(int idx);
#if __GNUC_PREREQ(4,1)
# pragma GCC visibility pop
#endif
#endif /* __LL_MAP_H__ */ #endif /* __LL_MAP_H__ */

View File

@ -2,7 +2,9 @@
#ifndef RT_NAMES_H_ #ifndef RT_NAMES_H_
#define RT_NAMES_H_ 1 #define RT_NAMES_H_ 1
#include <stdint.h> #if __GNUC_PREREQ(4,1)
# pragma GCC visibility push(hidden)
#endif
extern const char* rtnl_rtprot_n2a(int id, char *buf, int len); extern const char* rtnl_rtprot_n2a(int id, char *buf, int len);
extern const char* rtnl_rtscope_n2a(int id, char *buf, int len); extern const char* rtnl_rtscope_n2a(int id, char *buf, int len);
@ -27,4 +29,8 @@ extern const char* ll_proto_n2a(unsigned short id, char *buf, int len);
extern int ll_proto_a2n(unsigned short *id, char *buf); extern int ll_proto_a2n(unsigned short *id, char *buf);
#endif #endif
#if __GNUC_PREREQ(4,1)
# pragma GCC visibility pop
#endif
#endif #endif

View File

@ -2,10 +2,17 @@
#ifndef __RTM_MAP_H__ #ifndef __RTM_MAP_H__
#define __RTM_MAP_H__ 1 #define __RTM_MAP_H__ 1
#if __GNUC_PREREQ(4,1)
# pragma GCC visibility push(hidden)
#endif
const char *rtnl_rtntype_n2a(int id, char *buf, int len); const char *rtnl_rtntype_n2a(int id, char *buf, int len);
int rtnl_rtntype_a2n(int *id, char *arg); int rtnl_rtntype_a2n(int *id, char *arg);
int get_rt_realms(uint32_t *realms, char *arg); int get_rt_realms(uint32_t *realms, char *arg);
#if __GNUC_PREREQ(4,1)
# pragma GCC visibility pop
#endif
#endif /* __RTM_MAP_H__ */ #endif /* __RTM_MAP_H__ */

View File

@ -6,6 +6,10 @@
#include "ll_map.h" #include "ll_map.h"
#include "rtm_map.h" #include "rtm_map.h"
#if __GNUC_PREREQ(4,1)
# pragma GCC visibility push(hidden)
#endif
extern family_t preferred_family; extern family_t preferred_family;
extern smallint show_stats; /* UNUSED */ extern smallint show_stats; /* UNUSED */
extern smallint show_details; /* UNUSED */ extern smallint show_details; /* UNUSED */
@ -84,4 +88,8 @@ int dnet_pton(int af, const char *src, void *addr);
const char *ipx_ntop(int af, const void *addr, char *str, size_t len); const char *ipx_ntop(int af, const void *addr, char *str, size_t len);
int ipx_pton(int af, const char *src, void *addr); int ipx_pton(int af, const char *src, void *addr);
#if __GNUC_PREREQ(4,1)
# pragma GCC visibility pop
#endif
#endif /* __UTILS_H__ */ #endif /* __UTILS_H__ */

View File

@ -7,6 +7,10 @@
* Licensed under GPLv2, see file LICENSE in this tarball for details. * Licensed under GPLv2, see file LICENSE in this tarball for details.
*/ */
#if __GNUC_PREREQ(4,1)
# pragma GCC visibility push(hidden)
#endif
struct hcc { struct hcc {
char *ip; char *ip;
int pid; int pid;
@ -27,3 +31,7 @@ void ipsvd_perhost_remove(int pid);
//unsigned ipsvd_perhost_setpid(int pid); //unsigned ipsvd_perhost_setpid(int pid);
//void ipsvd_perhost_free(void); //void ipsvd_perhost_free(void);
#if __GNUC_PREREQ(4,1)
# pragma GCC visibility pop
#endif

View File

@ -11,6 +11,12 @@
#define _COMMON_H #define _COMMON_H
#include "libbb.h" #include "libbb.h"
#include <netinet/udp.h>
#include <netinet/ip.h>
#if __GNUC_PREREQ(4,1)
# pragma GCC visibility push(hidden)
#endif
#define DEFAULT_SCRIPT CONFIG_DHCPC_DEFAULT_SCRIPT #define DEFAULT_SCRIPT CONFIG_DHCPC_DEFAULT_SCRIPT
@ -18,9 +24,6 @@ extern const uint8_t MAC_BCAST_ADDR[6]; /* six all-ones */
/*** packet.h ***/ /*** packet.h ***/
#include <netinet/udp.h>
#include <netinet/ip.h>
#define DHCP_OPTIONS_BUFSIZE 308 #define DHCP_OPTIONS_BUFSIZE 308
struct dhcpMessage { struct dhcpMessage {
@ -98,4 +101,8 @@ int arpping(uint32_t test_ip, uint32_t from_ip, uint8_t *from_mac, const char *i
# define DEBUG(str, args...) do {;} while (0) # define DEBUG(str, args...) do {;} while (0)
#endif #endif
#if __GNUC_PREREQ(4,1)
# pragma GCC visibility pop
#endif
#endif #endif

View File

@ -4,6 +4,10 @@
#ifndef _DHCPC_H #ifndef _DHCPC_H
#define _DHCPC_H #define _DHCPC_H
#if __GNUC_PREREQ(4,1)
# pragma GCC visibility push(hidden)
#endif
#define INIT_SELECTING 0 #define INIT_SELECTING 0
#define REQUESTING 1 #define REQUESTING 1
#define BOUND 2 #define BOUND 2
@ -60,5 +64,8 @@ int send_renew(uint32_t xid, uint32_t server, uint32_t ciaddr);
int send_release(uint32_t server, uint32_t ciaddr); int send_release(uint32_t server, uint32_t ciaddr);
int get_raw_packet(struct dhcpMessage *payload, int fd); int get_raw_packet(struct dhcpMessage *payload, int fd);
#if __GNUC_PREREQ(4,1)
# pragma GCC visibility pop
#endif
#endif #endif

View File

@ -4,6 +4,10 @@
#ifndef _DHCPD_H #ifndef _DHCPD_H
#define _DHCPD_H #define _DHCPD_H
#if __GNUC_PREREQ(4,1)
# pragma GCC visibility push(hidden)
#endif
/************************************/ /************************************/
/* Defaults _you_ may want to tweak */ /* Defaults _you_ may want to tweak */
/************************************/ /************************************/
@ -114,4 +118,8 @@ void read_leases(const char *file);
struct option_set *find_option(struct option_set *opt_list, uint8_t code); struct option_set *find_option(struct option_set *opt_list, uint8_t code);
#if __GNUC_PREREQ(4,1)
# pragma GCC visibility pop
#endif
#endif #endif

View File

@ -3,6 +3,10 @@
#ifndef _OPTIONS_H #ifndef _OPTIONS_H
#define _OPTIONS_H #define _OPTIONS_H
#if __GNUC_PREREQ(4,1)
# pragma GCC visibility push(hidden)
#endif
#define TYPE_MASK 0x0F #define TYPE_MASK 0x0F
enum { enum {
@ -112,4 +116,8 @@ char *dname_dec(const uint8_t *cstr, int clen, const char *pre);
uint8_t *dname_enc(const uint8_t *cstr, int clen, const char *src, int *retlen); uint8_t *dname_enc(const uint8_t *cstr, int clen, const char *src, int *retlen);
#endif #endif
#if __GNUC_PREREQ(4,1)
# pragma GCC visibility pop
#endif
#endif #endif

View File

@ -25,6 +25,10 @@ OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
#if __GNUC_PREREQ(4,1)
# pragma GCC visibility push(hidden)
#endif
extern unsigned byte_chr(char *s,unsigned n,int c); extern unsigned byte_chr(char *s,unsigned n,int c);
#define direntry struct dirent #define direntry struct dirent
@ -95,3 +99,7 @@ typedef struct svstatus_t {
struct ERR_svstatus_must_be_20_bytes { struct ERR_svstatus_must_be_20_bytes {
char ERR_svstatus_must_be_20_bytes[sizeof(svstatus_t) == 20 ? 1 : -1]; char ERR_svstatus_must_be_20_bytes[sizeof(svstatus_t) == 20 ? 1 : -1];
}; };
#if __GNUC_PREREQ(4,1)
# pragma GCC visibility pop
#endif

View File

@ -21,6 +21,9 @@
#include "libbb.h" #include "libbb.h"
#include "volume_id.h" #include "volume_id.h"
#if __GNUC_PREREQ(4,1)
# pragma GCC visibility push(hidden)
#endif
#define dbg(...) ((void)0) #define dbg(...) ((void)0)
/* #define dbg(...) bb_error_msg(__VA_ARGS__) */ /* #define dbg(...) bb_error_msg(__VA_ARGS__) */
@ -224,3 +227,7 @@ int volume_id_probe_udf(struct volume_id *id, uint64_t off);
//int volume_id_probe_ufs(struct volume_id *id, uint64_t off); //int volume_id_probe_ufs(struct volume_id *id, uint64_t off);
int volume_id_probe_xfs(struct volume_id *id, uint64_t off); int volume_id_probe_xfs(struct volume_id *id, uint64_t off);
#if __GNUC_PREREQ(4,1)
# pragma GCC visibility pop
#endif