summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcel Hollerbach <mail@marcel-hollerbach.de>2020-09-30 19:45:43 +0200
committerMarcel Hollerbach <mail@marcel-hollerbach.de>2020-09-30 19:45:43 +0200
commit09c6315a61371b1c0df3f9cb93d97ca4b46e93b8 (patch)
tree7ae2c4418b06400d65e9276f27bcd2b6f60679ba
parent4700af9c7ddb50270e1bd12303d31d6da176aa87 (diff)
downloadefl-09c6315a61371b1c0df3f9cb93d97ca4b46e93b8.tar.gz
efl: work arround something weirddevs/bu5hm4n/lets-annoy-travis
-rw-r--r--src/bin/edje/edje_cc.c2
-rw-r--r--src/lib/efl/Efl.h3
-rw-r--r--src/lib/efl/interfaces/efl_interfaces_main.c6
-rw-r--r--src/lib/elementary/elm_general.h4
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