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
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
%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