-
Bug
-
Resolution: Unresolved
-
P4
-
None
-
openjdk8u462
-
x86_64
-
linux
ADDITIONAL SYSTEM INFORMATION :
openjdk version "1.8.0_462"
OpenJDK Runtime Environment (build 1.8.0_462-b01)
OpenJDK 64-Bit Server VM (build 25.462-b01, mixed mode)
A DESCRIPTION OF THE PROBLEM :
As ArchLinux use gcc15 as default gcc, package java8-openjdk cannot rebuild.(for me, I can't build jdk8u-jdk8u462-b01 version actually. same as jdk8u-jdk8u452-b09 I think)
https://github.com/openjdk/jdk8u/blob/55273f7267b95cf38743bb32ea61a513fbafb06e/hotspot/agent/src/os/linux/libproc.h#L86
```c
typedef int bool;
```
gcc-15 cannot compile this because
error: ‘bool’ cannot be defined via ‘typedef’
temporary fix :
sed -i "86c //typedef int bool;" hotspot/agent/src/os/linux/libproc.h
https://github.com/openjdk/jdk8u/blob/55273f7267b95cf38743bb32ea61a513fbafb06e/jdk/src/share/native/common/jni_util.h#L410
```c
void initializeEncoding();
```
https://github.com/openjdk/jdk8u/blob/55273f7267b95cf38743bb32ea61a513fbafb06e/jdk/src/share/native/common/jni_util.c#L687
```c
void
initializeEncoding(JNIEnv *env) {
...
}
```
gcc-15 cannot compile this because
error: conflicting types for ‘initializeEncoding’; have ‘void(JNIEnv *)’
temporary fix :
sed -i "410c void initializeEncoding(JNIEnv *env);" jdk/src/share/native/common/jni_util.h
https://github.com/openjdk/jdk8u/blob/55273f7267b95cf38743bb32ea61a513fbafb06e/jdk/src/share/bin/java.c#L148
```c
static void GrowKnownVMs();
```
https://github.com/openjdk/jdk8u/blob/55273f7267b95cf38743bb32ea61a513fbafb06e/jdk/src/share/bin/java.c#L1758
```c
GrowKnownVMs(cnt);
```
gcc-15 cannot compile this because
error: too many arguments to function ‘GrowKnownVMs’; expected 0, have 1
temporary fix :
sed -i "148c static void GrowKnownVMs(int);" jdk/src/share/bin/java.c
/builds/java8-openjdk/src/jdk8u-jdk8u462-b01/jdk/src/solaris/native/sun/net/spi/DefaultProxySelector.c: In function ‘getProxyByGProxyResolver’:
/builds/java8-openjdk/src/jdk8u-jdk8u462-b01/jdk/src/solaris/native/sun/net/spi/DefaultProxySelector.c:404:16: error: too many arguments to function ‘g_proxy_resolver_lookup’; expected 0, have 4
404 | proxies = (*g_proxy_resolver_lookup)(resolver, uri, NULL, &error);
| ~^~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~
/builds/java8-openjdk/src/jdk8u-jdk8u462-b01/jdk/src/solaris/native/sun/net/spi/DefaultProxySelector.c:413:30: error: too many arguments to function ‘g_network_address_parse_uri’; expected 0, have 3
413 | (*g_network_address_parse_uri)(proxies[i], 0,
| ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~
/builds/java8-openjdk/src/jdk8u-jdk8u462-b01/jdk/src/solaris/native/sun/net/spi/DefaultProxySelector.c:418:34: error: too many arguments to function ‘g_network_address_get_hostname’; expected 0, have 1
418 | phost = (*g_network_address_get_hostname)(conn);
| ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~
/builds/java8-openjdk/src/jdk8u-jdk8u462-b01/jdk/src/solaris/native/sun/net/spi/DefaultProxySelector.c:419:34: error: too many arguments to function ‘g_network_address_get_port’; expected 0, have 1
419 | pport = (*g_network_address_get_port)(conn);
| ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~
/builds/java8-openjdk/src/jdk8u-jdk8u462-b01/jdk/src/solaris/native/sun/net/spi/DefaultProxySelector.c:445:10: error: too many arguments to function ‘g_strfreev’; expected 0, have 1
445 | (*g_strfreev)(proxies);
| ~^~~~~~~~~~~~ ~~~~~~~
make[2]: *** [lib/NetworkingLibraries.gmk:62: /builds/java8-openjdk/src/jdk8u-jdk8u462-b01/build/linux-x86_64-normal-server-release/jdk/objs/libnet/DefaultProxySelector.o] Error 1
there is maybe some more compile error, I haven't found it yet. because I'm not sure how to temporary fix above error
please generate a patch for gcc-15, I now build java8-openjdk 1.8.0_462-b01 using specified gcc-14
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
git clone https://gitlab.archlinux.org/archlinux/packaging/packages/java8-openjdk
cd java8-openjdk
makepkg -s
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
successfully build java8-openjdk packages
ACTUAL -
receive compile error as above
openjdk version "1.8.0_462"
OpenJDK Runtime Environment (build 1.8.0_462-b01)
OpenJDK 64-Bit Server VM (build 25.462-b01, mixed mode)
A DESCRIPTION OF THE PROBLEM :
As ArchLinux use gcc15 as default gcc, package java8-openjdk cannot rebuild.(for me, I can't build jdk8u-jdk8u462-b01 version actually. same as jdk8u-jdk8u452-b09 I think)
https://github.com/openjdk/jdk8u/blob/55273f7267b95cf38743bb32ea61a513fbafb06e/hotspot/agent/src/os/linux/libproc.h#L86
```c
typedef int bool;
```
gcc-15 cannot compile this because
error: ‘bool’ cannot be defined via ‘typedef’
temporary fix :
sed -i "86c //typedef int bool;" hotspot/agent/src/os/linux/libproc.h
https://github.com/openjdk/jdk8u/blob/55273f7267b95cf38743bb32ea61a513fbafb06e/jdk/src/share/native/common/jni_util.h#L410
```c
void initializeEncoding();
```
https://github.com/openjdk/jdk8u/blob/55273f7267b95cf38743bb32ea61a513fbafb06e/jdk/src/share/native/common/jni_util.c#L687
```c
void
initializeEncoding(JNIEnv *env) {
...
}
```
gcc-15 cannot compile this because
error: conflicting types for ‘initializeEncoding’; have ‘void(JNIEnv *)’
temporary fix :
sed -i "410c void initializeEncoding(JNIEnv *env);" jdk/src/share/native/common/jni_util.h
https://github.com/openjdk/jdk8u/blob/55273f7267b95cf38743bb32ea61a513fbafb06e/jdk/src/share/bin/java.c#L148
```c
static void GrowKnownVMs();
```
https://github.com/openjdk/jdk8u/blob/55273f7267b95cf38743bb32ea61a513fbafb06e/jdk/src/share/bin/java.c#L1758
```c
GrowKnownVMs(cnt);
```
gcc-15 cannot compile this because
error: too many arguments to function ‘GrowKnownVMs’; expected 0, have 1
temporary fix :
sed -i "148c static void GrowKnownVMs(int);" jdk/src/share/bin/java.c
/builds/java8-openjdk/src/jdk8u-jdk8u462-b01/jdk/src/solaris/native/sun/net/spi/DefaultProxySelector.c: In function ‘getProxyByGProxyResolver’:
/builds/java8-openjdk/src/jdk8u-jdk8u462-b01/jdk/src/solaris/native/sun/net/spi/DefaultProxySelector.c:404:16: error: too many arguments to function ‘g_proxy_resolver_lookup’; expected 0, have 4
404 | proxies = (*g_proxy_resolver_lookup)(resolver, uri, NULL, &error);
| ~^~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~
/builds/java8-openjdk/src/jdk8u-jdk8u462-b01/jdk/src/solaris/native/sun/net/spi/DefaultProxySelector.c:413:30: error: too many arguments to function ‘g_network_address_parse_uri’; expected 0, have 3
413 | (*g_network_address_parse_uri)(proxies[i], 0,
| ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~
/builds/java8-openjdk/src/jdk8u-jdk8u462-b01/jdk/src/solaris/native/sun/net/spi/DefaultProxySelector.c:418:34: error: too many arguments to function ‘g_network_address_get_hostname’; expected 0, have 1
418 | phost = (*g_network_address_get_hostname)(conn);
| ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~
/builds/java8-openjdk/src/jdk8u-jdk8u462-b01/jdk/src/solaris/native/sun/net/spi/DefaultProxySelector.c:419:34: error: too many arguments to function ‘g_network_address_get_port’; expected 0, have 1
419 | pport = (*g_network_address_get_port)(conn);
| ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~
/builds/java8-openjdk/src/jdk8u-jdk8u462-b01/jdk/src/solaris/native/sun/net/spi/DefaultProxySelector.c:445:10: error: too many arguments to function ‘g_strfreev’; expected 0, have 1
445 | (*g_strfreev)(proxies);
| ~^~~~~~~~~~~~ ~~~~~~~
make[2]: *** [lib/NetworkingLibraries.gmk:62: /builds/java8-openjdk/src/jdk8u-jdk8u462-b01/build/linux-x86_64-normal-server-release/jdk/objs/libnet/DefaultProxySelector.o] Error 1
there is maybe some more compile error, I haven't found it yet. because I'm not sure how to temporary fix above error
please generate a patch for gcc-15, I now build java8-openjdk 1.8.0_462-b01 using specified gcc-14
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
git clone https://gitlab.archlinux.org/archlinux/packaging/packages/java8-openjdk
cd java8-openjdk
makepkg -s
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
successfully build java8-openjdk packages
ACTUAL -
receive compile error as above