Apply -fvisibility to decrease binary size 98/62898/1
authorJihoon Kim <jihoon48.kim@samsung.com>
Mon, 21 Mar 2016 05:42:46 +0000 (14:42 +0900)
committerJihoon Kim <jihoon48.kim@samsung.com>
Mon, 21 Mar 2016 05:42:55 +0000 (14:42 +0900)
The size of table.so is decreased from 175KB to 134KB

Change-Id: I4b8a90af09547536240a34b167552bbb5bed7118

packaging/ise-engine-tables.spec
src/scim_table_imengine.cpp
src/scim_table_imengine_setup.cpp

index 46696e537bc722a5f98986a02dd72a26dfef07e7..0e18fc50794c9ecf40270887d66bb06bf0d1ef50 100755 (executable)
@@ -92,6 +92,10 @@ rm -rf ${RPM_BUILD_ROOT}
 %setup -n %{name}-%{version}
 
 %build
+export CFLAGS+=" -fvisibility=hidden -flto "
+export CXXFLAGS+=" -fvisibility=hidden -flto "
+export CPPFLAGS+=" -DEXPORTED=__attribute__\(\(visibility\(\\\"default\\\"\)\)\)"
+
 ./bootstrap
 %reconfigure --prefix=%{_prefix} --sysconfdir=%{_sysconfdir} --mandir=%{_mandir}
 
index f1531072e744742ef1e0956eeaa9fe778735583a..cffc2417df05d883a2ba43726e8d4c6c58c85f61 100755 (executable)
@@ -126,13 +126,13 @@ _get_table_list (std::vector<String> &table_list, const String &path)
 }
 
 extern "C" {
-    void scim_module_init (void)
+    EXPORTED void scim_module_init (void)
     {
         bindtextdomain (GETTEXT_PACKAGE, SCIM_TABLE_LOCALEDIR);
         bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8");
     }
 
-    void scim_module_exit (void)
+    EXPORTED void scim_module_exit (void)
     {
         for (int i=0; i<_scim_number_of_tables; ++i)
             _scim_table_factories [i].reset ();
@@ -140,7 +140,7 @@ extern "C" {
         _scim_config.reset ();
     }
 
-    unsigned int scim_imengine_module_init (const ConfigPointer &config)
+    EXPORTED unsigned int scim_imengine_module_init (const ConfigPointer &config)
     {
         _scim_config = config;
 
@@ -152,7 +152,7 @@ extern "C" {
         return _scim_number_of_tables;
     }
 
-    IMEngineFactoryPointer scim_imengine_module_create_factory (unsigned int index)
+    EXPORTED IMEngineFactoryPointer scim_imengine_module_create_factory (unsigned int index)
     {
         if (index >= _scim_number_of_tables) return 0;
 
index 59ea58aa29e88326f40f2df7d91f0d3e7e8c1d48..f67a264d9c1cb3be19214dad0d0b2922abe79ddc 100755 (executable)
@@ -76,48 +76,48 @@ static void        destroy_all_tables ();
 
 // Module Interface.
 extern "C" {
-    void scim_module_init (void)
+    EXPORTED void scim_module_init (void)
     {
         bindtextdomain (GETTEXT_PACKAGE, SCIM_TABLE_LOCALEDIR);
         bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8");
     }
 
-    void scim_module_exit (void)
+    EXPORTED void scim_module_exit (void)
     {
         destroy_all_tables ();
     }
 
-    GtkWidget * scim_setup_module_create_ui (void)
+    EXPORTED GtkWidget * scim_setup_module_create_ui (void)
     {
         return create_setup_window ();
     }
 
-    String scim_setup_module_get_category (void)
+    EXPORTED String scim_setup_module_get_category (void)
     {
         return String ("IMEngine");
     }
 
-    String scim_setup_module_get_name (void)
+    EXPORTED String scim_setup_module_get_name (void)
     {
         return String (_("Generic Table"));
     }
 
-    String scim_setup_module_get_description (void)
+    EXPORTED String scim_setup_module_get_description (void)
     {
         return String (_("An IMEngine Module which uses generic table input method file."));
     }
 
-    void scim_setup_module_load_config (const ConfigPointer &config)
+    EXPORTED void scim_setup_module_load_config (const ConfigPointer &config)
     {
         load_config (config);
     }
 
-    void scim_setup_module_save_config (const ConfigPointer &config)
+    EXPORTED void scim_setup_module_save_config (const ConfigPointer &config)
     {
         save_config (config);
     }
 
-    bool scim_setup_module_query_changed ()
+    EXPORTED bool scim_setup_module_query_changed ()
     {
         return query_changed ();
     }