[gs-devel] build report for gs-9.55 candidate
Bruno Voisin
bvoisin at icloud.com
Wed May 26 18:36:11 UTC 2021
> Le 25 mai 2021 à 15:27, Nelson H. F. Beebe <beebe at math.utah.edu> a écrit :
>
> I downloaded and successfully built and installed the candidate
> release from
>
> https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/tag/gpdf_alpha1
>
> on CentOS 7 and 8, and Ubuntu 20.04, x86_64 systems. All tests
> passed.
I've just done the same (./configure && make && make check, not make install following Nelson's remark) on the Mac: macOS Big Sur 11.4, Xcode 12.5, Apple Silicon M1 (ie ARM) processor.
Two fixes were necessary for make to succeed:
- First the fix proposed at
https://bugs.ghostscript.com/show_bug.cgi?id=703884
for an incompatibility between Xcode 12.5 and the current Tesseract code. This is specific to version 12.5 of Xcode (the newest, from a month ago), and didn't occur with earlier versions.
- Second base/stdint_.h needs to be edited, replacing line 36
# ifdef __MACOS__
by
# ifdef __APPLE__
Otherwise the Mac platform isn't detected, the redefinitions in lines 50 ff. are applied and later conflicts with those in Xcode's built-in stdin.h, giving a lot of warnings and eventually
gcc -DSHARE_JPX=0 -D"memalign(a,b)=malloc(b)" -Wno-attributes -DOPJ_STATIC -DMUTEX_pthread=0 -DUSE_JPIP -DUSE_OPENJPEG_JP2 -DOPJ_HAVE_STDINT_H=1 -DOPJ_HAVE_INTTYPES_H=1 -DOPJ_HAVE_FSEEKO=1 -U__SSE__ -DPDF_INCLUDED -I./pdf -I./obj -I./pcl/pl -I./base -I./expat/lib -I./jpegxr -I./zlib -I./openjpeg/src/lib/openjp2 -I./jbig2dec -c ./pdf/pdf_utf8.c -o ./obj/pdf_utf8.o
In file included from ./pdf/pdf_utf8.c:25:
In file included from ./pdf/ghostpdf.h:28:
./base/stdint_.h:115:21: error: typedef redefinition with different types ('long' vs 'long long')
typedef signed long int64_t;
^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_int64_t.h:30:33: note: previous definition is here
typedef long long int64_t;
^
In file included from ./pdf/pdf_utf8.c:25:
In file included from ./pdf/ghostpdf.h:28:
./base/stdint_.h:116:23: error: typedef redefinition with different types ('unsigned long' vs 'unsigned long long')
typedef unsigned long uint64_t;
^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/_types/_uint64_t.h:31:28: note: previous definition is here
typedef unsigned long long uint64_t;
^
2 errors generated.
make: *** [obj/pdf_utf8.o] Error 1
I got inspiration for the changed test from
https://stackoverflow.com/questions/5919996/how-to-detect-reliably-mac-os-x-ios-linux-windows-in-c-preprocessor/5920028#5920028
Why the problem didn't arise previously with Ghostscript 9.54.0 and below is beyond me. I checked that the modification doesn't affect the compilation of ghostscript-9.54.0, which proceeds just as before.
Finally, ./configure, even before this fix, gave
checking for stdint.h... yes
So I don't know whether the comment at line 32 of base/stdint_.h
/* Some systems are guaranteed to have stdint.h
* but don't use the autoconf detection
*/
yielding the above test for macOS, is still relevant.
========================================================
Bruno Voisin
Laboratory of Geophysical and Industrial Flows
LEGI, CS 40700, 38058 Grenoble Cedex 9, France
+33 4 76 82 50 45
bruno.voisin at univ-grenoble-alpes.fr / bvoisin at icloud.com
www.legi.cnrs.fr/people/Bruno.Voisin/english.html
www.legi.cnrs.fr/web/spip.php?auteur50&lang=en
========================================================
More information about the gs-devel
mailing list