Is --with-zlib=bundled broken on MacOS aarch64 12.2.1?

David Holmes david.holmes at oracle.com
Mon Mar 28 06:46:36 UTC 2022


Hi Jai,

It isn't obvious to me that the bundled sources are actually intended to 
build on macOS. There's no include of unistd.h to get the lseek definition.

Cheers,
David

On 28/03/2022 2:50 pm, Jaikiran Pai wrote:
> I'm using the following set of commands to build the JDK on my Mac M1 
> 12.2.1 version. Specifically, I use the --with-zlib=bundled option 
> during configure:
> 
> bash configure --with-boot-jdk=<path-to-java17> --with-zlib=bundled
> 
> make clean
> 
> make images
> 
> This runs into build errors during make images. The configure summary is 
> as follows and the error logs (snippet) is pasted at the end of this 
> mail. Is this some issue with the versions of compiler/tools on my setup 
> or is this genuinely broken?
> 
> configure log summary:
> 
> The existing configuration has been successfully updated in
> /home/me/jdk/build/macosx-aarch64-server-release
> using configure arguments 
> '--with-boot-jdk=/home/me/java/openjdk/jdk-17.0.2.jdk/Contents/Home 
> --with-zlib=bundled'.
> 
> Configuration summary:
> * Name:           macosx-aarch64-server-release
> * Debug level:    release
> * HS debug level: product
> * JVM variants:   server
> * JVM features:   server: 'cds compiler1 compiler2 dtrace epsilongc g1gc 
> jfr jni-check jvmci jvmti management parallelgc serialgc services 
> shenandoahgc vm-structs zgc'
> * OpenJDK target: OS: macosx, CPU architecture: aarch64, address length: 64
> * Version string: 19-internal-adhoc.jaikiran.open (19-internal)
> * Source date:    Determined at build time
> 
> Tools summary:
> * Boot JDK:       openjdk version "17.0.2" 2022-01-18 OpenJDK Runtime 
> Environment (build 17.0.2+8-86) OpenJDK 64-Bit Server VM (build 
> 17.0.2+8-86, mixed mode, sharing) (at 
> /home/me/java/openjdk/jdk-17.0.2.jdk/Contents/Home)
> * Toolchain:      clang (clang/LLVM from Xcode 13.2.1)
> * C Compiler:     Version 13.0.0 (at /usr/bin/clang)
> * C++ Compiler:   Version 13.0.0 (at /usr/bin/clang++)
> 
> Build performance summary:
> * Build jobs:     8
> * Memory limit:   16384 MB
> 
> 
> build errors:
> 
> /home/me/jdk/src/java.base/share/native/libzip/zlib/gzlib.c:276:9: 
> error: implicit declaration of function 'lseek' is invalid in C99 
> [-Werror,-Wimplicit-function-declaration]
>          LSEEK(state->fd, 0, SEEK_END);  /* so gzoffset() is correct */
>          ^
> /home/me/jdk/src/java.base/share/native/libzip/zlib/gzlib.c:38:17: note: 
> expanded from macro 'LSEEK'
> #  define LSEEK lseek
>                  ^
> /home/me/jdk/src/java.base/share/native/libzip/zlib/gzlib.c:276:9: note: 
> did you mean 'fseek'?
> /home/me/jdk/src/java.base/share/native/libzip/zlib/gzlib.c:38:17: note: 
> expanded from macro 'LSEEK'
> #  define LSEEK lseek
>                  ^
> /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/include/stdio.h:162:6: 
> note: 'fseek' declared here
> int      fseek(FILE *, long, int);
>           ^
> /home/me/jdk/src/java.base/share/native/libzip/zlib/gzlib.c:282:24: 
> error: implicit declaration of function 'lseek' is invalid in C99 
> [-Werror,-Wimplicit-function-declaration]
>          state->start = LSEEK(state->fd, 0, SEEK_CUR);
>                         ^
> /home/me/jdk/src/java.base/share/native/libzip/zlib/gzlib.c:38:17: note: 
> expanded from macro 'LSEEK'
> #  define LSEEK lseek
>                  ^
> /home/me/jdk/src/java.base/share/native/libzip/zlib/gzlib.c:383:9: 
> error: implicit declaration of function 'lseek' is invalid in C99 
> [-Werror,-Wimplicit-function-declaration]
>      if (LSEEK(state->fd, state->start, SEEK_SET) == -1)
>          ^
> /home/me/jdk/src/java.base/share/native/libzip/zlib/gzlib.c:38:17: note: 
> expanded from macro 'LSEEK'
> #  define LSEEK lseek
>                  ^
> /home/me/jdk/src/java.base/share/native/libzip/zlib/gzlib.c:424:15: 
> error: implicit declaration of function 'lseek' is invalid in C99 
> [-Werror,-Wimplicit-function-declaration]
>          ret = LSEEK(state->fd, offset - state->x.have, SEEK_CUR);
>                ^
> /home/me/jdk/src/java.base/share/native/libzip/zlib/gzlib.c:38:17: note: 
> expanded from macro 'LSEEK'
> #  define LSEEK lseek
>                  ^
> /home/me/jdk/src/java.base/share/native/libzip/zlib/gzlib.c:520:14: 
> error: implicit declaration of function 'lseek' is invalid in C99 
> [-Werror,-Wimplicit-function-declaration]
>      offset = LSEEK(state->fd, 0, SEEK_CUR);
>               ^
> /home/me/jdk/src/java.base/share/native/libzip/zlib/gzlib.c:38:17: note: 
> expanded from macro 'LSEEK'
> #  define LSEEK lseek
>                  ^
> 5 errors generated.
> /home/me/jdk/src/java.base/share/native/libzip/zlib/gzread.c:59:15: 
> error: implicit declaration of function 'read' is invalid in C99 
> [-Werror,-Wimplicit-function-declaration]
>          ret = read(state->fd, buf + *have, get);
>                ^
> /home/me/jdk/src/java.base/share/native/libzip/zlib/gzread.c:59:15: 
> note: did you mean 'fread'?
> /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/include/stdio.h:158:9: 
> note: 'fread' declared here
> size_t   fread(void * __restrict __ptr, size_t __size, size_t __nitems, 
> FILE * __restrict __stream);
>           ^
> /home/me/jdk/src/java.base/share/native/libzip/zlib/gzread.c:675:11: 
> error: implicit declaration of function 'close' is invalid in C99 
> [-Werror,-Wimplicit-function-declaration]
>      ret = close(state->fd);
>            ^
> 2 errors generated.
> /home/me/jdk/src/java.base/share/native/libzip/zlib/gzwrite.c:113:20: 
> error: implicit declaration of function 'write' is invalid in C99 
> [-Werror,-Wimplicit-function-declaration]
>              writ = write(state->fd, strm->next_in, put);
>                     ^
> /home/me/jdk/src/java.base/share/native/libzip/zlib/gzwrite.c:113:20: 
> note: did you mean 'fwrite'?
> /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/include/stdio.h:165:9: 
> note: 'fwrite' declared here
> size_t   fwrite(const void * __restrict __ptr, size_t __size, size_t 
> __nitems, FILE * __restrict __stream) __DARWIN_ALIAS(fwrite);
>           ^
> /home/me/jdk/src/java.base/share/native/libzip/zlib/gzwrite.c:134:24: 
> error: implicit declaration of function 'write' is invalid in C99 
> [-Werror,-Wimplicit-function-declaration]
>                  writ = write(state->fd, state->x.next, put);
>                         ^
> /home/me/jdk/src/java.base/share/native/libzip/zlib/gzwrite.c:452:40: 
> error: format string is not a string literal [-Werror,-Wformat-nonliteral]
>      len = vsnprintf(next, state->size, format, va);
>                                         ^~~~~~
> /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/include/secure/_stdio.h:75:63: 
> note: expanded from macro 'vsnprintf'
>    __builtin___vsnprintf_chk (str, len, 0, __darwin_obsz(str), format, ap)
> ^~~~~~
> /home/me/jdk/src/java.base/share/native/libzip/zlib/gzwrite.c:685:9: 
> error: implicit declaration of function 'close' is invalid in C99 
> [-Werror,-Wimplicit-function-declaration]
>      if (close(state->fd) == -1)
>          ^
> 4 errors generated.
> make[3]: *** 
> [/home/me/jdk/build/macosx-aarch64-server-release/support/native/java.base/libzip/gzread.o] 
> Error 1
> make[3]: *** Waiting for unfinished jobs....
> make[3]: *** 
> [/home/me/jdk/build/macosx-aarch64-server-release/support/native/java.base/libzip/gzlib.o] 
> Error 1
> make[3]: *** 
> [/home/me/jdk/build/macosx-aarch64-server-release/support/native/java.base/libzip/gzwrite.o] 
> Error 1
> make[3]: *** wait: No child processes.  Stop.
> make[2]: *** [java.base-libs] Error 2
> 
> ERROR: Build failed for target 'images' in configuration 
> 'macosx-aarch64-server-release' (exit code 2)
> Stopping sjavac server
> 
> === Output from failing command(s) repeated here ===
> * For target support_native_java.base_libzip_gzlib.o:
> /home/me/jdk/src/java.base/share/native/libzip/zlib/gzlib.c:276:9: 
> error: implicit declaration of function 'lseek' is invalid in C99 
> [-Werror,-Wimplicit-function-declaration]
>          LSEEK(state->fd, 0, SEEK_END);  /* so gzoffset() is correct */
>          ^
> /home/me/jdk/src/java.base/share/native/libzip/zlib/gzlib.c:38:17: note: 
> expanded from macro 'LSEEK'
> #  define LSEEK lseek
>                  ^
> /home/me/jdk/src/java.base/share/native/libzip/zlib/gzlib.c:276:9: note: 
> did you mean 'fseek'?
> /home/me/jdk/src/java.base/share/native/libzip/zlib/gzlib.c:38:17: note: 
> expanded from macro 'LSEEK'
> #  define LSEEK lseek
>                  ^
> /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/include/stdio.h:162:6: 
> note: 'fseek' declared here
> int      fseek(FILE *, long, int);
>           ^
> /home/me/jdk/src/java.base/share/native/libzip/zlib/gzlib.c:282:24: 
> error: implicit declaration of function 'lseek' is invalid in C99 
> [-Werror,-Wimplicit-function-declaration]
>          state->start = LSEEK(state->fd, 0, SEEK_CUR);
>     ... (rest of output omitted)
> * For target support_native_java.base_libzip_gzread.o:
> /home/me/jdk/src/java.base/share/native/libzip/zlib/gzread.c:59:15: 
> error: implicit declaration of function 'read' is invalid in C99 
> [-Werror,-Wimplicit-function-declaration]
>          ret = read(state->fd, buf + *have, get);
>                ^
> /home/me/jdk/src/java.base/share/native/libzip/zlib/gzread.c:59:15: 
> note: did you mean 'fread'?
> /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/include/stdio.h:158:9: 
> note: 'fread' declared here
> size_t   fread(void * __restrict __ptr, size_t __size, size_t __nitems, 
> FILE * __restrict __stream);
>           ^
> /home/me/jdk/src/java.base/share/native/libzip/zlib/gzread.c:675:11: 
> error: implicit declaration of function 'close' is invalid in C99 
> [-Werror,-Wimplicit-function-declaration]
>      ret = close(state->fd);
>            ^
> 2 errors generated.
> * For target support_native_java.base_libzip_gzwrite.o:
> /home/me/jdk/src/java.base/share/native/libzip/zlib/gzwrite.c:113:20: 
> error: implicit declaration of function 'write' is invalid in C99 
> [-Werror,-Wimplicit-function-declaration]
>              writ = write(state->fd, strm->next_in, put);
>                     ^
> /home/me/jdk/src/java.base/share/native/libzip/zlib/gzwrite.c:113:20: 
> note: did you mean 'fwrite'?
> /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/include/stdio.h:165:9: 
> note: 'fwrite' declared here
> size_t   fwrite(const void * __restrict __ptr, size_t __size, size_t 
> __nitems, FILE * __restrict __stream) __DARWIN_ALIAS(fwrite);
>           ^
> /home/me/jdk/src/java.base/share/native/libzip/zlib/gzwrite.c:134:24: 
> error: implicit declaration of function 'write' is invalid in C99 
> [-Werror,-Wimplicit-function-declaration]
>                  writ = write(state->fd, state->x.next, put);
>                         ^
> /home/me/jdk/src/java.base/share/native/libzip/zlib/gzwrite.c:452:40: 
> error: format string is not a string literal [-Werror,-Wformat-nonliteral]
>      len = vsnprintf(next, state->size, format, va);
>                                         ^~~~~~
> /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/include/secure/_stdio.h:75:63: 
> note: expanded from macro 'vsnprintf'
>    __builtin___vsnprintf_chk (str, len, 0, __darwin_obsz(str), format, ap)
>     ... (rest of output omitted)
> 
> -Jaikiran
> 
> 



More information about the build-dev mailing list