]> granicus.if.org Git - libjpeg-turbo/commitdiff
Make SIMD syms private for x86[-64]/Mach-O builds
authorDRC <information@libjpeg-turbo.org>
Tue, 27 Feb 2018 01:41:59 +0000 (19:41 -0600)
committerDRC <information@libjpeg-turbo.org>
Tue, 27 Feb 2018 03:02:55 +0000 (21:02 -0600)
... if building with YASM.  NASM doesn't currently support the necessary
directives.

Closes #212

BUILDING.md
ChangeLog.md
simd/nasm/jsimdext.inc

index 0e63964840ff139d9f7d2ce727c3afd64e789ee5..429963ea41980d296cea2a7e6ce2417b17016f95 100644 (file)
@@ -18,6 +18,9 @@ Build Requirements
     when building macho64 objects.)  NASM or YASM can be obtained from
     [MacPorts](http://www.macports.org/) or [Homebrew](http://brew.sh/).
   * If using YASM, 1.2.0 or later is required.
+     - NOTE: Currently, if it is desirable to hide the SIMD function symbols in
+       Mac executables or shared libraries that statically link with
+       libjpeg-turbo, then YASM must be used when building libjpeg-turbo.
   * If building on Windows, **nasm.exe**/**yasm.exe** should be in your `PATH`.
 
   The binary RPMs released by the NASM project do not work on older Linux
index 7bac416ccbbfb275b7352873c4eb422fec40e7f8..a5e6c86f9b62af562137fd1e003df68e680d3f62 100644 (file)
@@ -107,9 +107,10 @@ actual security issues, should they arise in the future.
 algorithm that caused incorrect dithering in the output image.  This algorithm
 now produces bitwise-identical results to the unmerged algorithms.
 
-12. The SIMD function symbols for x86[-64]/ELF, MIPS/ELF, and iOS/ARM[64]
-builds are now private.  This prevents those symbols from being exposed in
-applications or shared libraries that link statically with libjpeg-turbo.
+12. The SIMD function symbols for x86[-64]/ELF, MIPS/ELF, macOS/x86[-64] (if
+libjpeg-turbo is built with YASM), and iOS/ARM[64] builds are now private.
+This prevents those symbols from being exposed in applications or shared
+libraries that link statically with libjpeg-turbo.
 
 
 1.5.3
index e91e009d55d379d677a272f44e0051968b851de7..fc9c85567184c41b5834410b0219affbfb39ef88 100644 (file)
@@ -194,11 +194,17 @@ section .note.GNU-stack noalloc noexec nowrite progbits
 %ifdef ELF      ; ----(nasm -felf[64] -DELF ...)--------
 %define GLOBAL_FUNCTION(name)  global EXTN(name):function hidden
 %define GLOBAL_DATA(name)      global EXTN(name):data hidden
-;%elifdef MACHO  ; ----(nasm -fmacho -DMACHO ...)--------
-;%define GLOBAL_FUNCTION(name)  global EXTN(name):private_extern
-;%define GLOBAL_DATA(name)      global EXTN(name):private_extern
-%else
+%elifdef MACHO  ; ----(nasm -fmacho -DMACHO ...)--------
+%ifdef __YASM_VER__
+%define GLOBAL_FUNCTION(name)  global EXTN(name):private_extern
+%define GLOBAL_DATA(name)      global EXTN(name):private_extern
+%endif
+%endif
+
+%ifndef GLOBAL_FUNCTION
 %define GLOBAL_FUNCTION(name)  global EXTN(name)
+%endif
+%ifndef GLOBAL_DATA
 %define GLOBAL_DATA(name)      global EXTN(name)
 %endif