aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJim Huang <jserv@0xlab.org>2010-08-08 15:11:37 +0800
committerJim Huang <jserv@0xlab.org>2010-08-08 15:11:37 +0800
commit1cb15eb3049b918c8c1363e874f2efb491cbb534 (patch)
tree27bae8d6e6f777b68b407e21379adbb077a10d84
parent5f6bd84e375226bf228fc8ac90318957ec9e1e7f (diff)
downloadexternal_libpng-1cb15eb3049b918c8c1363e874f2efb491cbb534.zip
external_libpng-1cb15eb3049b918c8c1363e874f2efb491cbb534.tar.gz
external_libpng-1cb15eb3049b918c8c1363e874f2efb491cbb534.tar.bz2
libpng: use GCC visibility to reduce shared library size
The change introduced the implementation for macro PNG_IMPEXP by using GCC visibility in defaulting of "hidden" attribute. Experiment on HTC Passion: target file; out/target/product/passion/system/lib/libskia.so (libpng was statically linked to libskia.so) before: 1117888 bytes after: 1113780 bytes Code size reduction = 4108 bytes Change-Id: I9b718a6a5710268dbb945feea3b64ca3fa393b94
-rw-r--r--Android.mk3
-rw-r--r--pngconf.h6
2 files changed, 7 insertions, 2 deletions
diff --git a/Android.mk b/Android.mk
index 2a6eb43..d5c81d7 100644
--- a/Android.mk
+++ b/Android.mk
@@ -22,7 +22,8 @@ common_SRC_FILES := \
pngwtran.c \
pngwutil.c
-common_CFLAGS := ## -fomit-frame-pointer
+common_CFLAGS := \
+ -fvisibility=hidden ## -fomit-frame-pointer
common_C_INCLUDES += \
diff --git a/pngconf.h b/pngconf.h
index defc16d..5760ba3 100644
--- a/pngconf.h
+++ b/pngconf.h
@@ -1505,7 +1505,11 @@ typedef z_stream FAR * png_zstreamp;
# define PNGAPI
#endif
#ifndef PNG_IMPEXP
-# define PNG_IMPEXP
+# if ((__GNUC__-0) * 10 + __GNUC_MINOR__-0 >= 33)
+# define PNG_IMPEXP __attribute__((visibility ("default")))
+# else
+# define PNG_IMPEXP
+# endif
#endif
#ifdef PNG_BUILDSYMS