mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-04-24 12:06:57 +00:00
MINOR: initcall: uniformize the section names between MacOS and other unixes
Due to length restrictions on OSX the initcall sections are called "i_" there while they're called "init_" on other OSes. However the start and end of sections are still called "__start_init_" and "__stop_init_", which forces to have distinct code between the OSes. Let's switch everyone to "i_" and rename the symbols accordingly.
This commit is contained in:
parent
ad14c2681b
commit
afa9bc0ec5
@ -85,7 +85,7 @@ struct initcall {
|
|||||||
#ifdef __APPLE__
|
#ifdef __APPLE__
|
||||||
#define HA_SECTION(s) __section__("__DATA, i_" # s)
|
#define HA_SECTION(s) __section__("__DATA, i_" # s)
|
||||||
#else
|
#else
|
||||||
#define HA_SECTION(s) __section__("init_" # s)
|
#define HA_SECTION(s) __section__("i_" # s)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Declare a static variable in the init section dedicated to stage <stg>,
|
/* Declare a static variable in the init section dedicated to stage <stg>,
|
||||||
@ -101,8 +101,8 @@ struct initcall {
|
|||||||
#define __GLOBL1(sym) __asm__(".globl " #sym)
|
#define __GLOBL1(sym) __asm__(".globl " #sym)
|
||||||
#define __GLOBL(sym) __GLOBL1(sym)
|
#define __GLOBL(sym) __GLOBL1(sym)
|
||||||
#define __DECLARE_INITCALL(stg, linenum, function, a1, a2, a3) \
|
#define __DECLARE_INITCALL(stg, linenum, function, a1, a2, a3) \
|
||||||
__GLOBL(__start_init_##stg ); \
|
__GLOBL(__start_i_##stg ); \
|
||||||
__GLOBL(__stop_init_##stg ); \
|
__GLOBL(__stop_i_##stg ); \
|
||||||
static const struct initcall *__initcb_##linenum \
|
static const struct initcall *__initcb_##linenum \
|
||||||
__attribute__((__used__,HA_SECTION(stg))) = \
|
__attribute__((__used__,HA_SECTION(stg))) = \
|
||||||
(stg < STG_SIZE) ? &(const struct initcall) { \
|
(stg < STG_SIZE) ? &(const struct initcall) { \
|
||||||
@ -179,7 +179,7 @@ __attribute__((constructor)) static void __initcb_##linenum() \
|
|||||||
* stage <stg>.
|
* stage <stg>.
|
||||||
*/
|
*/
|
||||||
#define FOREACH_INITCALL(p,stg) \
|
#define FOREACH_INITCALL(p,stg) \
|
||||||
for ((p) = &(__start_init_##stg); (p) < &(__stop_init_##stg); (p)++)
|
for ((p) = &(__start_i_##stg); (p) < &(__stop_i_##stg); (p)++)
|
||||||
|
|
||||||
#else // USE_OBSOLETE_LINKER
|
#else // USE_OBSOLETE_LINKER
|
||||||
|
|
||||||
@ -197,13 +197,13 @@ __attribute__((constructor)) static void __initcb_##linenum() \
|
|||||||
*/
|
*/
|
||||||
#ifdef __APPLE__
|
#ifdef __APPLE__
|
||||||
#define DECLARE_INIT_SECTION(stg) \
|
#define DECLARE_INIT_SECTION(stg) \
|
||||||
extern __attribute__((__weak__)) const struct initcall *__start_init_##stg __asm("section$start$__DATA$i_" # stg); \
|
extern __attribute__((__weak__)) const struct initcall *__start_i_##stg __asm("section$start$__DATA$i_" # stg); \
|
||||||
extern __attribute__((__weak__)) const struct initcall *__stop_init_##stg __asm("section$end$__DATA$i_" # stg)
|
extern __attribute__((__weak__)) const struct initcall *__stop_i_##stg __asm("section$end$__DATA$i_" # stg)
|
||||||
|
|
||||||
#else
|
#else
|
||||||
#define DECLARE_INIT_SECTION(stg) \
|
#define DECLARE_INIT_SECTION(stg) \
|
||||||
extern __attribute__((__weak__)) const struct initcall *__start_init_##stg; \
|
extern __attribute__((__weak__)) const struct initcall *__start_i_##stg; \
|
||||||
extern __attribute__((__weak__)) const struct initcall *__stop_init_##stg
|
extern __attribute__((__weak__)) const struct initcall *__stop_i_##stg
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Declare all initcall sections here */
|
/* Declare all initcall sections here */
|
||||||
|
Loading…
Reference in New Issue
Block a user