From a4942a2f7a2afdea5577eaae7cc4322ef1662fb9 Mon Sep 17 00:00:00 2001 From: Joachim Kern Date: Tue, 28 Jan 2025 10:25:36 +0000 Subject: [PATCH] 8348286: [AIX] clang 17 introduces new warning Wtentative-Definitions which produces Build errors Reviewed-by: ihse, azvegint --- .../native/libawt/awt/image/imageInitIDs.c | 74 ++++++++++- .../native/libawt/awt/image/imageInitIDs.h | 120 +++++++++--------- .../unix/native/libawt_xawt/awt/fp_pipewire.h | 90 ------------- .../libawt_xawt/awt/screencast_pipewire.c | 58 ++++++++- 4 files changed, 187 insertions(+), 155 deletions(-) delete mode 100644 src/java.desktop/unix/native/libawt_xawt/awt/fp_pipewire.h diff --git a/src/java.desktop/share/native/libawt/awt/image/imageInitIDs.c b/src/java.desktop/share/native/libawt/awt/image/imageInitIDs.c index 81bac6a414f..75b585e3496 100644 --- a/src/java.desktop/share/native/libawt/awt/image/imageInitIDs.c +++ b/src/java.desktop/share/native/libawt/awt/image/imageInitIDs.c @@ -24,8 +24,78 @@ */ #include #include "jni_util.h" -#define IMGEXTERN -#include "imageInitIDs.h" + +/* BufferedImage ids */ +jfieldID g_BImgRasterID; +jfieldID g_BImgTypeID; +jfieldID g_BImgCMID; +jmethodID g_BImgGetRGBMID; +jmethodID g_BImgSetRGBMID; + +/* Raster ids */ +jfieldID g_RasterWidthID; +jfieldID g_RasterHeightID; +jfieldID g_RasterMinXID; +jfieldID g_RasterMinYID; +jfieldID g_RasterBaseOriginXID; +jfieldID g_RasterBaseOriginYID; +jfieldID g_RasterSampleModelID; +jfieldID g_RasterDataBufferID; +jfieldID g_RasterNumDataElementsID; +jfieldID g_RasterNumBandsID; + +jfieldID g_BCRdataID; +jfieldID g_BCRscanstrID; +jfieldID g_BCRpixstrID; +jfieldID g_BCRdataOffsetsID; +jfieldID g_BCRtypeID; +jfieldID g_BPRdataID; +jfieldID g_BPRscanstrID; +jfieldID g_BPRpixstrID; +jfieldID g_BPRtypeID; +jfieldID g_BPRdataBitOffsetID; +jfieldID g_SCRdataID; +jfieldID g_SCRscanstrID; +jfieldID g_SCRpixstrID; +jfieldID g_SCRdataOffsetsID; +jfieldID g_SCRtypeID; +jfieldID g_ICRdataID; +jfieldID g_ICRscanstrID; +jfieldID g_ICRpixstrID; +jfieldID g_ICRdataOffsetsID; +jfieldID g_ICRtypeID; + +/* Color Model ids */ +jfieldID g_CMnBitsID; +jfieldID g_CMcspaceID; +jfieldID g_CMnumComponentsID; +jfieldID g_CMsuppAlphaID; +jfieldID g_CMisAlphaPreID; +jfieldID g_CMtransparencyID; +jfieldID g_CMcsTypeID; +jfieldID g_CMis_sRGBID; +jmethodID g_CMgetRGBdefaultMID; + +jfieldID g_ICMtransIdxID; +jfieldID g_ICMmapSizeID; +jfieldID g_ICMrgbID; + +/* Sample Model ids */ +jfieldID g_SMWidthID; +jfieldID g_SMHeightID; +jmethodID g_SMGetPixelsMID; +jmethodID g_SMSetPixelsMID; + +/* Single Pixel Packed Sample Model ids */ +jfieldID g_SPPSMmaskArrID; +jfieldID g_SPPSMmaskOffID; +jfieldID g_SPPSMnBitsID; +jfieldID g_SPPSMmaxBitID; + +/* Kernel ids */ +jfieldID g_KernelWidthID; +jfieldID g_KernelHeightID; +jfieldID g_KernelDataID; JNIEXPORT void JNICALL Java_java_awt_image_BufferedImage_initIDs(JNIEnv *env, jclass cls) { diff --git a/src/java.desktop/share/native/libawt/awt/image/imageInitIDs.h b/src/java.desktop/share/native/libawt/awt/image/imageInitIDs.h index c1c7a61680a..b042c091b3a 100644 --- a/src/java.desktop/share/native/libawt/awt/image/imageInitIDs.h +++ b/src/java.desktop/share/native/libawt/awt/image/imageInitIDs.h @@ -28,80 +28,76 @@ #include "jni.h" -#ifndef IMGEXTERN -# define IMGEXTERN extern -#endif - /* BufferedImage ids */ -IMGEXTERN jfieldID g_BImgRasterID; -IMGEXTERN jfieldID g_BImgTypeID; -IMGEXTERN jfieldID g_BImgCMID; -IMGEXTERN jmethodID g_BImgGetRGBMID; -IMGEXTERN jmethodID g_BImgSetRGBMID; +extern jfieldID g_BImgRasterID; +extern jfieldID g_BImgTypeID; +extern jfieldID g_BImgCMID; +extern jmethodID g_BImgGetRGBMID; +extern jmethodID g_BImgSetRGBMID; /* Raster ids */ -IMGEXTERN jfieldID g_RasterWidthID; -IMGEXTERN jfieldID g_RasterHeightID; -IMGEXTERN jfieldID g_RasterMinXID; -IMGEXTERN jfieldID g_RasterMinYID; -IMGEXTERN jfieldID g_RasterBaseOriginXID; -IMGEXTERN jfieldID g_RasterBaseOriginYID; -IMGEXTERN jfieldID g_RasterSampleModelID; -IMGEXTERN jfieldID g_RasterDataBufferID; -IMGEXTERN jfieldID g_RasterNumDataElementsID; -IMGEXTERN jfieldID g_RasterNumBandsID; +extern jfieldID g_RasterWidthID; +extern jfieldID g_RasterHeightID; +extern jfieldID g_RasterMinXID; +extern jfieldID g_RasterMinYID; +extern jfieldID g_RasterBaseOriginXID; +extern jfieldID g_RasterBaseOriginYID; +extern jfieldID g_RasterSampleModelID; +extern jfieldID g_RasterDataBufferID; +extern jfieldID g_RasterNumDataElementsID; +extern jfieldID g_RasterNumBandsID; -IMGEXTERN jfieldID g_BCRdataID; -IMGEXTERN jfieldID g_BCRscanstrID; -IMGEXTERN jfieldID g_BCRpixstrID; -IMGEXTERN jfieldID g_BCRdataOffsetsID; -IMGEXTERN jfieldID g_BCRtypeID; -IMGEXTERN jfieldID g_BPRdataID; -IMGEXTERN jfieldID g_BPRscanstrID; -IMGEXTERN jfieldID g_BPRpixstrID; -IMGEXTERN jfieldID g_BPRtypeID; -IMGEXTERN jfieldID g_BPRdataBitOffsetID; -IMGEXTERN jfieldID g_SCRdataID; -IMGEXTERN jfieldID g_SCRscanstrID; -IMGEXTERN jfieldID g_SCRpixstrID; -IMGEXTERN jfieldID g_SCRdataOffsetsID; -IMGEXTERN jfieldID g_SCRtypeID; -IMGEXTERN jfieldID g_ICRdataID; -IMGEXTERN jfieldID g_ICRscanstrID; -IMGEXTERN jfieldID g_ICRpixstrID; -IMGEXTERN jfieldID g_ICRdataOffsetsID; -IMGEXTERN jfieldID g_ICRtypeID; +extern jfieldID g_BCRdataID; +extern jfieldID g_BCRscanstrID; +extern jfieldID g_BCRpixstrID; +extern jfieldID g_BCRdataOffsetsID; +extern jfieldID g_BCRtypeID; +extern jfieldID g_BPRdataID; +extern jfieldID g_BPRscanstrID; +extern jfieldID g_BPRpixstrID; +extern jfieldID g_BPRtypeID; +extern jfieldID g_BPRdataBitOffsetID; +extern jfieldID g_SCRdataID; +extern jfieldID g_SCRscanstrID; +extern jfieldID g_SCRpixstrID; +extern jfieldID g_SCRdataOffsetsID; +extern jfieldID g_SCRtypeID; +extern jfieldID g_ICRdataID; +extern jfieldID g_ICRscanstrID; +extern jfieldID g_ICRpixstrID; +extern jfieldID g_ICRdataOffsetsID; +extern jfieldID g_ICRtypeID; /* Color Model ids */ -IMGEXTERN jfieldID g_CMnBitsID; -IMGEXTERN jfieldID g_CMcspaceID; -IMGEXTERN jfieldID g_CMnumComponentsID; -IMGEXTERN jfieldID g_CMsuppAlphaID; -IMGEXTERN jfieldID g_CMisAlphaPreID; -IMGEXTERN jfieldID g_CMtransparencyID; -IMGEXTERN jfieldID g_CMcsTypeID; -IMGEXTERN jfieldID g_CMis_sRGBID; -IMGEXTERN jmethodID g_CMgetRGBdefaultMID; +extern jfieldID g_CMnBitsID; +extern jfieldID g_CMcspaceID; +extern jfieldID g_CMnumComponentsID; +extern jfieldID g_CMsuppAlphaID; +extern jfieldID g_CMisAlphaPreID; +extern jfieldID g_CMtransparencyID; +extern jfieldID g_CMcsTypeID; +extern jfieldID g_CMis_sRGBID; +extern jmethodID g_CMgetRGBdefaultMID; -IMGEXTERN jfieldID g_ICMtransIdxID; -IMGEXTERN jfieldID g_ICMmapSizeID; -IMGEXTERN jfieldID g_ICMrgbID; +extern jfieldID g_ICMtransIdxID; +extern jfieldID g_ICMmapSizeID; +extern jfieldID g_ICMrgbID; /* Sample Model ids */ -IMGEXTERN jfieldID g_SMWidthID; -IMGEXTERN jfieldID g_SMHeightID; -IMGEXTERN jmethodID g_SMGetPixelsMID; -IMGEXTERN jmethodID g_SMSetPixelsMID; +extern jfieldID g_SMWidthID; +extern jfieldID g_SMHeightID; +extern jmethodID g_SMGetPixelsMID; +extern jmethodID g_SMSetPixelsMID; /* Single Pixel Packed Sample Model ids */ -IMGEXTERN jfieldID g_SPPSMmaskArrID; -IMGEXTERN jfieldID g_SPPSMmaskOffID; -IMGEXTERN jfieldID g_SPPSMnBitsID; -IMGEXTERN jfieldID g_SPPSMmaxBitID; +extern jfieldID g_SPPSMmaskArrID; +extern jfieldID g_SPPSMmaskOffID; +extern jfieldID g_SPPSMnBitsID; +extern jfieldID g_SPPSMmaxBitID; /* Kernel ids */ -IMGEXTERN jfieldID g_KernelWidthID; -IMGEXTERN jfieldID g_KernelHeightID; -IMGEXTERN jfieldID g_KernelDataID; +extern jfieldID g_KernelWidthID; +extern jfieldID g_KernelHeightID; +extern jfieldID g_KernelDataID; #endif /* IMAGEINITIDS_H */ diff --git a/src/java.desktop/unix/native/libawt_xawt/awt/fp_pipewire.h b/src/java.desktop/unix/native/libawt_xawt/awt/fp_pipewire.h deleted file mode 100644 index d39f7c833b7..00000000000 --- a/src/java.desktop/unix/native/libawt_xawt/awt/fp_pipewire.h +++ /dev/null @@ -1,90 +0,0 @@ -/* - * Copyright (c) 2023, 2024, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Oracle designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifdef HEADLESS -#error This file should not be included in headless library -#endif -#ifndef _FP_PIPEWIRE_H -#define _FP_PIPEWIRE_H - - -struct pw_buffer *(*fp_pw_stream_dequeue_buffer)(struct pw_stream *stream); -const char * (*fp_pw_stream_state_as_string)(enum pw_stream_state state); -int (*fp_pw_stream_queue_buffer)(struct pw_stream *stream, - struct pw_buffer *buffer); -int (*fp_pw_stream_set_active)(struct pw_stream *stream, bool active); - -int (*fp_pw_stream_connect)( - struct pw_stream *stream, - enum pw_direction direction, - uint32_t target_id, - enum pw_stream_flags flags, - const struct spa_pod **params, - uint32_t n_params); - -struct pw_stream *(*fp_pw_stream_new)( - struct pw_core *core, - const char *name, - struct pw_properties *props -); -void (*fp_pw_stream_add_listener)(struct pw_stream *stream, - struct spa_hook *listener, - const struct pw_stream_events *events, - void *data); -int (*fp_pw_stream_disconnect)(struct pw_stream *stream); -void (*fp_pw_stream_destroy)(struct pw_stream *stream); - - -void (*fp_pw_init)(int *argc, char **argv[]); - -struct pw_core * -(*fp_pw_context_connect_fd)(struct pw_context *context, - int fd, - struct pw_properties *properties, - size_t user_data_size); - -int (*fp_pw_core_disconnect)(struct pw_core *core); - -struct pw_context * (*fp_pw_context_new)(struct pw_loop *main_loop, - struct pw_properties *props, - size_t user_data_size); - -struct pw_thread_loop * -(*fp_pw_thread_loop_new)(const char *name, const struct spa_dict *props); -struct pw_loop * (*fp_pw_thread_loop_get_loop)(struct pw_thread_loop *loop); -void (*fp_pw_thread_loop_signal)(struct pw_thread_loop *loop, - bool wait_for_accept); -void (*fp_pw_thread_loop_wait)(struct pw_thread_loop *loop); -void (*fp_pw_thread_loop_accept)(struct pw_thread_loop *loop); -int (*fp_pw_thread_loop_start)(struct pw_thread_loop *loop); -void (*fp_pw_thread_loop_stop)(struct pw_thread_loop *loop); -void (*fp_pw_thread_loop_destroy)(struct pw_thread_loop *loop); -void (*fp_pw_thread_loop_lock)(struct pw_thread_loop *loop); -void (*fp_pw_thread_loop_unlock)(struct pw_thread_loop *loop); - -struct pw_properties * (*fp_pw_properties_new)(const char *key, ...); - - -#endif //_FP_PIPEWIRE_H diff --git a/src/java.desktop/unix/native/libawt_xawt/awt/screencast_pipewire.c b/src/java.desktop/unix/native/libawt_xawt/awt/screencast_pipewire.c index e81bd5410b3..09585964ac8 100644 --- a/src/java.desktop/unix/native/libawt_xawt/awt/screencast_pipewire.c +++ b/src/java.desktop/unix/native/libawt_xawt/awt/screencast_pipewire.c @@ -31,7 +31,63 @@ #include "jni_util.h" #include "awt.h" #include "screencast_pipewire.h" -#include "fp_pipewire.h" + +struct pw_buffer *(*fp_pw_stream_dequeue_buffer)(struct pw_stream *stream); +const char * (*fp_pw_stream_state_as_string)(enum pw_stream_state state); +int (*fp_pw_stream_queue_buffer)(struct pw_stream *stream, + struct pw_buffer *buffer); +int (*fp_pw_stream_set_active)(struct pw_stream *stream, bool active); + +int (*fp_pw_stream_connect)( + struct pw_stream *stream, + enum pw_direction direction, + uint32_t target_id, + enum pw_stream_flags flags, + const struct spa_pod **params, + uint32_t n_params); + +struct pw_stream *(*fp_pw_stream_new)( + struct pw_core *core, + const char *name, + struct pw_properties *props +); +void (*fp_pw_stream_add_listener)(struct pw_stream *stream, + struct spa_hook *listener, + const struct pw_stream_events *events, + void *data); +int (*fp_pw_stream_disconnect)(struct pw_stream *stream); +void (*fp_pw_stream_destroy)(struct pw_stream *stream); + + +void (*fp_pw_init)(int *argc, char **argv[]); + +struct pw_core * +(*fp_pw_context_connect_fd)(struct pw_context *context, + int fd, + struct pw_properties *properties, + size_t user_data_size); + +int (*fp_pw_core_disconnect)(struct pw_core *core); + +struct pw_context * (*fp_pw_context_new)(struct pw_loop *main_loop, + struct pw_properties *props, + size_t user_data_size); + +struct pw_thread_loop * +(*fp_pw_thread_loop_new)(const char *name, const struct spa_dict *props); +struct pw_loop * (*fp_pw_thread_loop_get_loop)(struct pw_thread_loop *loop); +void (*fp_pw_thread_loop_signal)(struct pw_thread_loop *loop, + bool wait_for_accept); +void (*fp_pw_thread_loop_wait)(struct pw_thread_loop *loop); +void (*fp_pw_thread_loop_accept)(struct pw_thread_loop *loop); +int (*fp_pw_thread_loop_start)(struct pw_thread_loop *loop); +void (*fp_pw_thread_loop_stop)(struct pw_thread_loop *loop); +void (*fp_pw_thread_loop_destroy)(struct pw_thread_loop *loop); +void (*fp_pw_thread_loop_lock)(struct pw_thread_loop *loop); +void (*fp_pw_thread_loop_unlock)(struct pw_thread_loop *loop); + +struct pw_properties * (*fp_pw_properties_new)(const char *key, ...); + #include #include "gtk_interface.h"