From 09c6315a61371b1c0df3f9cb93d97ca4b46e93b8 Mon Sep 17 00:00:00 2001 From: Marcel Hollerbach Date: Wed, 30 Sep 2020 19:45:43 +0200 Subject: [PATCH] efl: work arround something weird --- src/bin/edje/edje_cc.c | 2 ++ src/lib/efl/Efl.h | 3 ++- src/lib/efl/interfaces/efl_interfaces_main.c | 6 ++++++ src/lib/elementary/elm_general.h | 4 ++-- 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/bin/edje/edje_cc.c b/src/bin/edje/edje_cc.c index dff3fd7a3e..11e2a900a9 100644 --- a/src/bin/edje/edje_cc.c +++ b/src/bin/edje/edje_cc.c @@ -156,6 +156,8 @@ main(int argc, char **argv) if (!eina_init()) return -1; + __efl_internal_appear(); + _edje_cc_log_dom = eina_log_domain_register ("edje_cc", EDJE_CC_DEFAULT_LOG_COLOR); if (_edje_cc_log_dom < 0) diff --git a/src/lib/efl/Efl.h b/src/lib/efl/Efl.h index 480249fae5..242e40c888 100644 --- a/src/lib/efl/Efl.h +++ b/src/lib/efl/Efl.h @@ -343,7 +343,8 @@ efl_config_string_get(const Efl_Config *obj, const char *name) /* work-around bug in gcc --as-needed link optimization */ EAPI void __efl_internal_init(void); - +/* work-around bug in linkers where --as-needed strips all the libaries only having weak symbols */ +EAPI void __efl_internal_appear(void); #if defined ( __cplusplus ) } #endif diff --git a/src/lib/efl/interfaces/efl_interfaces_main.c b/src/lib/efl/interfaces/efl_interfaces_main.c index 4856df5a6e..82268086e5 100644 --- a/src/lib/efl/interfaces/efl_interfaces_main.c +++ b/src/lib/efl/interfaces/efl_interfaces_main.c @@ -111,6 +111,12 @@ __efl_internal_init(void) efl_model_init(); } +EAPI void +__efl_internal_appear(void) +{ +/* work-around bug in linkers where --as-needed strips all the libaries only having weak symbols */ +} + static Eina_Value _efl_ui_view_factory_item_created(Eo *factory, void *data EINA_UNUSED, const Eina_Value v) { diff --git a/src/lib/elementary/elm_general.h b/src/lib/elementary/elm_general.h index b0708e11c3..cd6b96cab8 100644 --- a/src/lib/elementary/elm_general.h +++ b/src/lib/elementary/elm_general.h @@ -525,13 +525,13 @@ typedef Eina_Bool (*Elm_Event_Cb)(void *data, Evas_Object *obj, Evas EAPI extern double _elm_startup_time; #ifndef ELM_LIB_QUICKLAUNCH -#define ELM_MAIN() int main(int argc, char **argv) { int ret__; _elm_startup_time = ecore_time_unix_get(); elm_init(argc, argv); ret__ = elm_main(argc, argv); elm_shutdown(); return ret__; } /**< macro to be used after the elm_main() function */ +#define ELM_MAIN() int main(int argc, char **argv) { int ret__; __efl_internal_appear(); _elm_startup_time = ecore_time_unix_get(); elm_init(argc, argv); ret__ = elm_main(argc, argv); elm_shutdown(); return ret__; } /**< macro to be used after the elm_main() function */ #else /** @deprecated macro to be used after the elm_main() function. * Do not define ELM_LIB_QUICKLAUNCH * Compile your programs with -fpie and -pie -rdynamic instead, to generate a single binary (linkable executable). */ -#define ELM_MAIN() int main(int argc, char **argv) { int ret__; _elm_startup_time = ecore_time_unix_get(); ret__ = elm_quicklaunch_fallback(argc, argv); elm_shutdown(); return ret__; } +#define ELM_MAIN() int main(int argc, char **argv) { int ret__; __efl_internal_appear(); _elm_startup_time = ecore_time_unix_get(); ret__ = elm_quicklaunch_fallback(argc, argv); elm_shutdown(); return ret__; } #endif #define __EFL_UI_IS_REQUIRED