x86inc.asm: only set visibility for chromium builds
authorJames Zern <jzern@google.com>
Thu, 18 Feb 2016 02:32:57 +0000 (18:32 -0800)
committerJohann <johannkoenig@google.com>
Thu, 18 Feb 2016 02:45:40 +0000 (18:45 -0800)
this restores the previous version's behavior avoiding issues with
builds that may split sources on directory boundaries; protected
visibility may work in this case.

Change-Id: Ie759bd96c9ea5b45613f450dffa6e67eb45f5a8b

third_party/x86inc/README.libvpx
third_party/x86inc/x86inc.asm

index d0f5716..8d3cd96 100644 (file)
@@ -17,3 +17,4 @@ Set 'private_extern' visibility for macho targets.
 Copy PIC 'GLOBAL' macros from x86_abi_support.asm
 Use .text instead of .rodata on macho to avoid broken tables in PIC mode.
 Use .text with no alignment for aout
+Only use 'hidden' visibility with Chromium
index 0694d21..fc65bd3 100644 (file)
@@ -786,7 +786,14 @@ BRANCH_INSTR jz, je, jnz, jne, jl, jle, jnl, jnle, jg, jge, jng, jnge, ja, jae,
     annotate_function_size
     %if %1
         %xdefine %%FUNCTION_PREFIX private_prefix
-        %xdefine %%VISIBILITY hidden
+        ; libvpx explicitly sets visibility in shared object builds. Avoid
+        ; setting visibility to hidden as it may break builds that split
+        ; sources on e.g., directory boundaries.
+        %ifdef CHROMIUM
+            %xdefine %%VISIBILITY hidden
+        %else
+            %xdefine %%VISIBILITY
+        %endif
     %else
         %xdefine %%FUNCTION_PREFIX public_prefix
         %xdefine %%VISIBILITY