Limit exported symbols
Symbols from static libraries included in dynamic libraries are exported from
the dynamic library by default, and the usual "-Wl,--exclude-libs,ALL" doesn't
work for 64-bit libraries, so use a version script instead to ensure we only
export the necessary symbols.
This prevents applications from accessing the libraries outside of the
provided API, and reduces total size of extractor libraries by over 20%.
Test: build, run
Change-Id: I0aa1bd5fdc638960e66f59c867731a0aad255896
diff --git a/media/extractors/aac/Android.bp b/media/extractors/aac/Android.bp
index 65f9b96..7937a29 100644
--- a/media/extractors/aac/Android.bp
+++ b/media/extractors/aac/Android.bp
@@ -23,6 +23,7 @@
"-Wall",
"-fvisibility=hidden",
],
+ version_script: "exports.lds",
sanitize: {
cfi: true,
diff --git a/media/extractors/aac/exports.lds b/media/extractors/aac/exports.lds
new file mode 100644
index 0000000..b1309ee
--- /dev/null
+++ b/media/extractors/aac/exports.lds
@@ -0,0 +1 @@
+{ global: GETEXTRACTORDEF; local: *; };
diff --git a/media/extractors/amr/Android.bp b/media/extractors/amr/Android.bp
index 01bbfa2..e5bbe31 100644
--- a/media/extractors/amr/Android.bp
+++ b/media/extractors/amr/Android.bp
@@ -23,6 +23,7 @@
"-Wall",
"-fvisibility=hidden",
],
+ version_script: "exports.lds",
sanitize: {
cfi: true,
diff --git a/media/extractors/amr/exports.lds b/media/extractors/amr/exports.lds
new file mode 100644
index 0000000..b1309ee
--- /dev/null
+++ b/media/extractors/amr/exports.lds
@@ -0,0 +1 @@
+{ global: GETEXTRACTORDEF; local: *; };
diff --git a/media/extractors/flac/Android.bp b/media/extractors/flac/Android.bp
index 80a4125..84ba6d3 100644
--- a/media/extractors/flac/Android.bp
+++ b/media/extractors/flac/Android.bp
@@ -28,6 +28,7 @@
"-Wall",
"-fvisibility=hidden",
],
+ version_script: "exports.lds",
sanitize: {
cfi: true,
diff --git a/media/extractors/flac/exports.lds b/media/extractors/flac/exports.lds
new file mode 100644
index 0000000..b1309ee
--- /dev/null
+++ b/media/extractors/flac/exports.lds
@@ -0,0 +1 @@
+{ global: GETEXTRACTORDEF; local: *; };
diff --git a/media/extractors/midi/Android.bp b/media/extractors/midi/Android.bp
index 68f8766..9af128e 100644
--- a/media/extractors/midi/Android.bp
+++ b/media/extractors/midi/Android.bp
@@ -27,6 +27,7 @@
"-Wall",
"-fvisibility=hidden",
],
+ version_script: "exports.lds",
sanitize: {
cfi: true,
diff --git a/media/extractors/midi/exports.lds b/media/extractors/midi/exports.lds
new file mode 100644
index 0000000..b1309ee
--- /dev/null
+++ b/media/extractors/midi/exports.lds
@@ -0,0 +1 @@
+{ global: GETEXTRACTORDEF; local: *; };
diff --git a/media/extractors/mkv/Android.bp b/media/extractors/mkv/Android.bp
index 350c6fe..0301ffa 100644
--- a/media/extractors/mkv/Android.bp
+++ b/media/extractors/mkv/Android.bp
@@ -31,6 +31,7 @@
"-Wall",
"-fvisibility=hidden",
],
+ version_script: "exports.lds",
sanitize: {
cfi: true,
diff --git a/media/extractors/mkv/exports.lds b/media/extractors/mkv/exports.lds
new file mode 100644
index 0000000..b1309ee
--- /dev/null
+++ b/media/extractors/mkv/exports.lds
@@ -0,0 +1 @@
+{ global: GETEXTRACTORDEF; local: *; };
diff --git a/media/extractors/mp3/Android.bp b/media/extractors/mp3/Android.bp
index 6912ef1..d93562c 100644
--- a/media/extractors/mp3/Android.bp
+++ b/media/extractors/mp3/Android.bp
@@ -31,6 +31,7 @@
"-Wall",
"-fvisibility=hidden",
],
+ version_script: "exports.lds",
sanitize: {
cfi: true,
diff --git a/media/extractors/mp3/exports.lds b/media/extractors/mp3/exports.lds
new file mode 100644
index 0000000..b1309ee
--- /dev/null
+++ b/media/extractors/mp3/exports.lds
@@ -0,0 +1 @@
+{ global: GETEXTRACTORDEF; local: *; };
diff --git a/media/extractors/mp4/Android.bp b/media/extractors/mp4/Android.bp
index 49a3714..fce8dd6 100644
--- a/media/extractors/mp4/Android.bp
+++ b/media/extractors/mp4/Android.bp
@@ -33,6 +33,7 @@
"-Wall",
"-fvisibility=hidden",
],
+ version_script: "exports.lds",
sanitize: {
cfi: true,
diff --git a/media/extractors/mp4/exports.lds b/media/extractors/mp4/exports.lds
new file mode 100644
index 0000000..b1309ee
--- /dev/null
+++ b/media/extractors/mp4/exports.lds
@@ -0,0 +1 @@
+{ global: GETEXTRACTORDEF; local: *; };
diff --git a/media/extractors/mpeg2/Android.bp b/media/extractors/mpeg2/Android.bp
index 50f740b..c6bb40d 100644
--- a/media/extractors/mpeg2/Android.bp
+++ b/media/extractors/mpeg2/Android.bp
@@ -41,6 +41,7 @@
"-Wall",
"-fvisibility=hidden",
],
+ version_script: "exports.lds",
sanitize: {
cfi: true,
diff --git a/media/extractors/mpeg2/exports.lds b/media/extractors/mpeg2/exports.lds
new file mode 100644
index 0000000..b1309ee
--- /dev/null
+++ b/media/extractors/mpeg2/exports.lds
@@ -0,0 +1 @@
+{ global: GETEXTRACTORDEF; local: *; };
diff --git a/media/extractors/ogg/Android.bp b/media/extractors/ogg/Android.bp
index 6bd8025..2c09a5f 100644
--- a/media/extractors/ogg/Android.bp
+++ b/media/extractors/ogg/Android.bp
@@ -28,6 +28,7 @@
"-Wall",
"-fvisibility=hidden",
],
+ version_script: "exports.lds",
sanitize: {
cfi: true,
diff --git a/media/extractors/ogg/exports.lds b/media/extractors/ogg/exports.lds
new file mode 100644
index 0000000..b1309ee
--- /dev/null
+++ b/media/extractors/ogg/exports.lds
@@ -0,0 +1 @@
+{ global: GETEXTRACTORDEF; local: *; };
diff --git a/media/extractors/wav/Android.bp b/media/extractors/wav/Android.bp
index f310892..65c71ef 100644
--- a/media/extractors/wav/Android.bp
+++ b/media/extractors/wav/Android.bp
@@ -27,6 +27,7 @@
"-Wall",
"-fvisibility=hidden",
],
+ version_script: "exports.lds",
sanitize: {
cfi: true,
diff --git a/media/extractors/wav/exports.lds b/media/extractors/wav/exports.lds
new file mode 100644
index 0000000..b1309ee
--- /dev/null
+++ b/media/extractors/wav/exports.lds
@@ -0,0 +1 @@
+{ global: GETEXTRACTORDEF; local: *; };