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

@ -17,7 +17,7 @@
#endif #endif
/* __restrict is known in EGCS 1.2 and above. */ /* __restrict is known in EGCS 1.2 and above. */
#if !__GNUC_PREREQ (2,92) #if !__GNUC_PREREQ(2,92)
# ifndef __restrict # ifndef __restrict
# define __restrict /* Ignore */ # define __restrict /* Ignore */
# endif # endif
@ -27,7 +27,7 @@
macros freely, and know that they will come into play for the macros freely, and know that they will come into play for the
version of gcc in which they are supported. */ version of gcc in which they are supported. */
#if !__GNUC_PREREQ (2,7) #if !__GNUC_PREREQ(2,7)
# ifndef __attribute__ # ifndef __attribute__
# define __attribute__(x) # define __attribute__(x)
# endif # endif
@ -37,7 +37,7 @@
#if defined(__STDC_VERSION__) && __STDC_VERSION__ > 199901L #if defined(__STDC_VERSION__) && __STDC_VERSION__ > 199901L
/* it's a keyword */ /* it's a keyword */
#else #else
# if __GNUC_PREREQ (2,7) # if __GNUC_PREREQ(2,7)
# define inline __inline__ # define inline __inline__
# else # else
# define inline # define inline
@ -48,49 +48,49 @@
# define __const const # define __const const
#endif #endif
# define ATTRIBUTE_UNUSED __attribute__ ((__unused__)) #define ATTRIBUTE_UNUSED __attribute__ ((__unused__))
# define ATTRIBUTE_NORETURN __attribute__ ((__noreturn__)) #define ATTRIBUTE_NORETURN __attribute__ ((__noreturn__))
# define ATTRIBUTE_PACKED __attribute__ ((__packed__)) #define ATTRIBUTE_PACKED __attribute__ ((__packed__))
# define ATTRIBUTE_ALIGNED(m) __attribute__ ((__aligned__(m))) #define ATTRIBUTE_ALIGNED(m) __attribute__ ((__aligned__(m)))
/* __NO_INLINE__: some gcc's do not honor inlining! :( */ /* __NO_INLINE__: some gcc's do not honor inlining! :( */
# if __GNUC_PREREQ (3,0) && !defined(__NO_INLINE__) #if __GNUC_PREREQ(3,0) && !defined(__NO_INLINE__)
# define ALWAYS_INLINE __attribute__ ((always_inline)) inline # define ALWAYS_INLINE __attribute__ ((always_inline)) inline
/* I've seen a toolchain where I needed __noinline__ instead of noinline */ /* I've seen a toolchain where I needed __noinline__ instead of noinline */
# define NOINLINE __attribute__((__noinline__)) # define NOINLINE __attribute__((__noinline__))
# if !ENABLE_WERROR # if !ENABLE_WERROR
# define ATTRIBUTE_DEPRECATED __attribute__ ((__deprecated__)) # define ATTRIBUTE_DEPRECATED __attribute__ ((__deprecated__))
# define ATTRIBUTE_UNUSED_RESULT __attribute__ ((warn_unused_result)) # define ATTRIBUTE_UNUSED_RESULT __attribute__ ((warn_unused_result))
# else
# define ATTRIBUTE_DEPRECATED /* n/a */
# define ATTRIBUTE_UNUSED_RESULT /* n/a */
# endif
# else # else
# define ALWAYS_INLINE inline /* n/a */
# define NOINLINE /* n/a */
# define ATTRIBUTE_DEPRECATED /* n/a */ # define ATTRIBUTE_DEPRECATED /* n/a */
# define ATTRIBUTE_UNUSED_RESULT /* n/a */ # define ATTRIBUTE_UNUSED_RESULT /* n/a */
# endif # endif
#else
# define ALWAYS_INLINE inline /* n/a */
# define NOINLINE /* n/a */
# define ATTRIBUTE_DEPRECATED /* n/a */
# define ATTRIBUTE_UNUSED_RESULT /* n/a */
#endif
/* -fwhole-program makes all symbols local. The attribute externally_visible /* -fwhole-program makes all symbols local. The attribute externally_visible
forces a symbol global. */ forces a symbol global. */
# if __GNUC_PREREQ (4,1) #if __GNUC_PREREQ(4,1)
# define EXTERNALLY_VISIBLE __attribute__(( visibility("default") )) # define EXTERNALLY_VISIBLE __attribute__(( visibility("default") ))
//__attribute__ ((__externally_visible__)) //__attribute__ ((__externally_visible__))
# else #else
# define EXTERNALLY_VISIBLE # define EXTERNALLY_VISIBLE
# endif /* GNUC >= 4.1 */ #endif /* GNUC >= 4.1 */
/* We use __extension__ in some places to suppress -pedantic warnings /* We use __extension__ in some places to suppress -pedantic warnings
about GCC extensions. This feature didn't work properly before about GCC extensions. This feature didn't work properly before
gcc 2.8. */ gcc 2.8. */
#if !__GNUC_PREREQ (2,8) #if !__GNUC_PREREQ(2,8)
# ifndef __extension__ # ifndef __extension__
# define __extension__ # define __extension__
# endif # endif
#endif #endif
/* gcc-2.95 had no va_copy but only __va_copy. */ /* gcc-2.95 had no va_copy but only __va_copy. */
#if !__GNUC_PREREQ (3,0) #if !__GNUC_PREREQ(3,0)
# include <stdarg.h> # include <stdarg.h>
# if !defined va_copy && defined __va_copy # if !defined va_copy && defined __va_copy
# define va_copy(d,s) __va_copy((d),(s)) # define va_copy(d,s) __va_copy((d),(s))

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