qemu-cr16/include/qemu
Philippe Mathieu-Daudé df3b304605 osdep: Undefine FSCALE definition to fix Solaris builds
Solaris defines FSCALE in <sys/param.h>:

  301 /*
  302  * Scale factor for scaled integers used to count
  303  * %cpu time and load averages.
  304  */
  305 #define FSHIFT  8               /* bits to right of fixed binary point */
  306 #define FSCALE  (1<<FSHIFT)

When emulating the SVE FSCALE instruction, we defines the same name
in decodetree format in target/arm/tcg/sve.decode:

  1129:FSCALE          01100101 .. 00 1001 100 ... ..... .....    @rdn_pg_rm

This leads to a definition clash:

  In file included from ../target/arm/tcg/translate-sve.c:21:
  ../target/arm/tcg/translate.h:875:17: error: pasting "trans_" and "(" does not give a valid preprocessing token
    875 |     static bool trans_##NAME(DisasContext *s, arg_##NAME *a) \
        |                 ^~~~~~
  ../target/arm/tcg/translate-sve.c:4205:5: note: in expansion of macro 'TRANS_FEAT'
   4205 |     TRANS_FEAT(NAME, FEAT, gen_gvec_fpst_arg_zpzz, name##_zpzz_fns[a->esz], a)
        |     ^~~~~~~~~~
  ../target/arm/tcg/translate-sve.c:4249:1: note: in expansion of macro 'DO_ZPZZ_FP'
   4249 | DO_ZPZZ_FP(FSCALE, aa64_sve, sve_fscalbn)
        | ^~~~~~~~~~
  ../target/arm/tcg/translate-sve.c:4249:12: error: expected declaration specifiers or '...' before numeric constant
   4249 | DO_ZPZZ_FP(FSCALE, aa64_sve, sve_fscalbn)
        |            ^~~~~~
  ../target/arm/tcg/translate.h:875:25: note: in definition of macro 'TRANS_FEAT'
    875 |     static bool trans_##NAME(DisasContext *s, arg_##NAME *a) \
        |                         ^~~~
  ../target/arm/tcg/translate-sve.c:4249:1: note: in expansion of macro 'DO_ZPZZ_FP'
   4249 | DO_ZPZZ_FP(FSCALE, aa64_sve, sve_fscalbn)
        | ^~~~~~~~~~
  ../target/arm/tcg/translate.h:875:47: error: pasting "arg_" and "(" does not give a valid preprocessing token
    875 |     static bool trans_##NAME(DisasContext *s, arg_##NAME *a) \
        |                                               ^~~~
  ../target/arm/tcg/translate-sve.c:4205:5: note: in expansion of macro 'TRANS_FEAT'
   4205 |     TRANS_FEAT(NAME, FEAT, gen_gvec_fpst_arg_zpzz, name##_zpzz_fns[a->esz], a)
        |     ^~~~~~~~~~
  ../target/arm/tcg/translate-sve.c:4249:1: note: in expansion of macro 'DO_ZPZZ_FP'
   4249 | DO_ZPZZ_FP(FSCALE, aa64_sve, sve_fscalbn)
        | ^~~~~~~~~~
  In file included from ../target/arm/tcg/translate-sve.c💯
  libqemu-aarch64-softmmu.a.p/decode-sve.c.inc:1227:13: warning: 'trans_FSCALE' used but never defined
   1227 | static bool trans_FSCALE(DisasContext *ctx, arg_FSCALE *a);
        |             ^~~~~~~~~~~~
  ../target/arm/tcg/translate-sve.c:4249:30: warning: 'sve_fscalbn_zpzz_fns' defined but not used [-Wunused-const-variable=]
   4249 | DO_ZPZZ_FP(FSCALE, aa64_sve, sve_fscalbn)
        |                              ^~~~~~~~~~~
  ../target/arm/tcg/translate-sve.c:4201:42: note: in definition of macro 'DO_ZPZZ_FP'
   4201 |     static gen_helper_gvec_4_ptr * const name##_zpzz_fns[4] = { \
        |                                          ^~~~

As a kludge, undefine it globally in <qemu/osdep.h>.

Suggested-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20251203120315.62889-1-philmd@linaro.org>
2025-12-09 20:42:53 +01:00
..
accel.h accel: Extract AccelClass definition to 'accel/accel-ops.h' 2025-07-15 19:34:33 +02:00
async-teardown.h Don't include headers already included by qemu/osdep.h 2023-02-08 07:28:05 +01:00
atomic.h tcg: Remove TCG_OVERSIZED_GUEST 2025-02-18 07:33:42 -08:00
atomic128.h qemu/atomic128: Include missing 'qemu/atomic.h' header 2025-03-08 09:35:06 -08:00
audio-capture.h audio: move capture API to own header 2025-10-30 22:56:51 +04:00
audio.h audio: move capture API to own header 2025-10-30 22:56:51 +04:00
base64.h nomaintainer: Fix Lesser GPL version number 2020-11-15 17:04:40 +01:00
bcd.h
bitmap.h bitops.h: Define bit operations on 'uint32_t' arrays 2024-11-19 13:02:06 +00:00
bitops.h bitops.h: Define bit operations on 'uint32_t' arrays 2024-11-19 13:02:06 +00:00
bswap.h qemu: Declare all load/store helper in 'qemu/bswap.h' 2025-07-15 02:56:39 -04:00
buffer.h Replace GCC_FMT_ATTR with G_GNUC_PRINTF 2022-03-22 14:40:51 +04:00
cacheflush.h util/cacheflush.c: Update cache flushing mechanism for Emscripten 2025-05-06 16:02:04 +02:00
cacheinfo.h include: Move qemu_[id]cache_* declarations to new qemu/cacheinfo.h 2022-02-21 13:30:20 +00:00
chardev_open.h util/char_dev: Add open_cdev() 2023-12-19 19:03:38 +01:00
co-shared-resource.h util/co-shared-resource: Remove unused co_try_get_from_shres 2024-09-30 10:53:18 +03:00
compiler.h host-utils: Drop workaround for buggy Apple Clang __builtin_subcll() 2025-07-21 10:07:53 +01:00
config-file.h util/qemu-config: Extract QMP commands to qemu-config-qmp.c 2024-04-18 11:17:27 +02:00
coroutine-core.h Rename "QEMU global mutex" to "BQL" in comments and docs 2024-01-08 10:45:43 -05:00
coroutine-tls.h tls: add macros for coroutine-safe TLS variables 2022-03-04 18:14:40 +01:00
coroutine.h qemu/coroutine: Include missing 'qemu/atomic.h' header 2024-12-20 17:44:57 +01:00
coroutine_int.h
cpu-float.h Clean up ill-advised or unusual header guards 2022-05-11 16:50:01 +02:00
cpuid.h cpuinfo/i386: Detect GFNI as an AVX extension 2025-09-04 09:49:23 +02:00
crc-ccitt.h license: Update deprecated SPDX tag GPL-2.0 to GPL-2.0-only 2024-09-20 10:11:59 +03:00
crc32c.h igb: Implement Rx SCTP CSO 2023-05-23 15:20:15 +08:00
ctype.h
cutils.h hw/vmapple/aes: Introduce aes engine 2025-03-04 14:45:34 +01:00
datadir.h system/datadir: Add new type constant for DTB files 2025-04-25 17:09:58 +02:00
dbus.h Don't include headers already included by qemu/osdep.h 2023-02-08 07:28:05 +01:00
defer-call.h util/defer-call: move defer_call() to util/ 2023-10-31 15:41:42 +01:00
drm.h
envlist.h envlist: Remove unused envlist_parse 2024-09-20 10:00:27 +03:00
error-report.h Move error_printf_unless_qmp() with monitor unit 2022-04-21 17:09:09 +04:00
event_notifier.h event_notifier: add event_notifier_get_wfd() 2022-03-06 06:19:47 -05:00
exit-with-parent.h Implement -run-with exit-with-parent=on 2025-11-03 10:05:39 +00:00
fifo8.h fifo8: introduce fifo8_peek() function 2024-09-13 20:11:13 +02:00
fifo32.h
filemonitor.h nomaintainer: Fix Lesser GPL version number 2020-11-15 17:04:40 +01:00
futex.h futex: Support Windows 2025-06-06 14:32:55 +02:00
guest-random.h util/guest-random: Clean up global variable shadowing 2023-10-06 13:27:48 +02:00
hbitmap.h hbitmap: fix hbitmap_status() return value for first dirty bit case 2023-02-17 14:34:24 +01:00
help-texts.h docs: update copyright date to the year 2025 2025-01-02 07:44:28 +01:00
help_option.h keyval: Parse help options 2020-10-15 16:06:27 +02:00
host-pci-mmio.h include: Add a header to define host PCI MMIO functions 2025-05-08 10:21:10 -04:00
host-utils.h host-utils: Drop workaround for buggy Apple Clang __builtin_subcll() 2025-07-21 10:07:53 +01:00
hw-version.h include: Move hardware version declarations to new qemu/hw-version.h 2022-02-21 13:30:20 +00:00
id.h net: Use id_generate() in the network subsystem, too 2021-03-09 21:47:45 +01:00
int128.h host/include/generic/host/atomic128: Fix compilation problem with Clang 17 2023-11-13 11:35:47 +01:00
interval-tree.h util: Add interval-tree.c 2022-12-20 17:09:41 -08:00
iov.h util/iov: Do not assert offset is in iov 2025-03-10 17:07:16 +08:00
iova-tree.h include/system: Move exec/memory.h to system/memory.h 2025-04-23 14:08:21 -07:00
jhash.h
job.h block/commit: mark commit_abort() as GRAPH_UNLOCKED 2025-07-14 15:42:13 +02:00
keyval.h Clean up ill-advised or unusual header guards 2022-05-11 16:50:01 +02:00
lockable.h lockable: Do not cast function pointers 2024-05-29 12:41:56 +02:00
lockcnt.h qemu-thread: Use futex if available for QemuLockCnt 2025-06-06 14:32:55 +02:00
log-for-trace.h log: change qemu_loglevel to unsigned 2025-10-01 11:22:07 -04:00
log.h log: change qemu_loglevel to unsigned 2025-10-01 11:22:07 -04:00
madvise.h include: Move qemu_madvise() and related #defines to new qemu/madvise.h 2022-02-21 13:30:20 +00:00
main-loop.h bql: Fix bql_locked status with condvar APIs 2025-11-03 11:59:32 +01:00
memalign.h osdep: Move memalign-related functions to their own header 2022-03-07 13:16:49 +00:00
memfd.h
mmap-alloc.h util/mmap-alloc: qemu_fd_getfs() 2023-04-24 11:29:00 +02:00
module.h module: add Error arguments to module_load and module_load_qom 2022-11-06 09:48:50 +01:00
mprotect.h include: Move qemu_mprotect_*() to new qemu/mprotect.h 2022-02-21 13:30:20 +00:00
notify.h migration: convert to NotifierWithReturn 2024-02-28 11:31:28 +08:00
nvdimm-utils.h Clean up includes 2020-12-10 17:16:44 +01:00
option.h qemu-option: remove QemuOpt from typedefs.h 2024-05-03 15:47:48 +02:00
option_int.h
osdep.h osdep: Undefine FSCALE definition to fix Solaris builds 2025-12-09 20:42:53 +01:00
path.h
plugin-event.h plugins: add API for registering discontinuity callbacks 2025-10-29 14:12:43 +00:00
plugin-memory.h include/qemu: plugin-memory.h doesn't need cpu-defs.h 2025-03-10 10:30:01 +00:00
plugin.h plugins: add hooks for new discontinuity related callbacks 2025-10-29 14:12:43 +00:00
pmem.h include/qemu: remove return after g_assert_not_reached() 2024-09-24 13:53:35 +02:00
processor.h qemu/processor: Remove unused 'qemu/atomic.h' header 2023-08-31 19:47:43 +02:00
progress_meter.h coroutine: Clean up superfluous inclusion of qemu/lockable.h 2023-01-19 10:18:28 +01:00
qdist.h
qemu-plugin.h plugins: add API for registering discontinuity callbacks 2025-10-29 14:12:43 +00:00
qemu-print.h Replace GCC_FMT_ATTR with G_GNUC_PRINTF 2022-03-22 14:40:51 +04:00
qemu-progress.h include: move progress API to qemu-progress.h 2022-04-06 14:31:43 +02:00
qht.h
qsp.h
qtree.h include: Clean up includes 2024-01-30 21:20:20 +03:00
queue.h
range.h util/range: Make ranges_overlap() return bool 2024-07-23 20:30:36 +02:00
ratelimit.h ratelimit: treat zero speed as unlimited 2021-06-25 14:22:21 +03:00
rcu.h include/qemu: replace FSF postal address with licenses URL 2025-06-26 00:42:37 +02:00
rcu_queue.h include/qemu: replace FSF postal address with licenses URL 2025-06-26 00:42:37 +02:00
readline.h readline: Extract readline_add_completion_of() from monitor 2023-02-04 07:56:54 +01:00
reserved-region.h include/system: Move exec/memory.h to system/memory.h 2025-04-23 14:08:21 -07:00
s390x_pci_mmio.h util: Add functions for s390x mmio read/write 2025-05-08 10:03:07 -04:00
selfmap.h util/selfmap: Use dev_t and ino_t in MapInfo 2023-09-01 13:34:03 -07:00
seqlock.h
sockets.h util: drop qemu_socket_set_block() 2025-09-19 12:46:07 +01:00
stats64.h stat64: Add stat64_set() operation 2023-04-27 16:39:43 +02:00
sys_membarrier.h bulk: Do not declare function prototypes using 'extern' keyword 2023-08-31 19:47:43 +02:00
systemd.h
target-info-impl.h qemu/target-info: Include missing 'qapi-types-common.h' header 2025-10-22 08:55:28 +02:00
target-info-qapi.h qemu/target-info: Add target_endian_mode() 2025-07-15 02:56:39 -04:00
target-info.h qemu/target_info: Add target_base_arm() helper 2025-10-30 14:48:26 +01:00
thread-context.h util: Introduce ThreadContext user-creatable object 2022-10-27 11:00:43 +02:00
thread-posix.h qemu-thread: Use futex for QemuEvent on Windows 2025-06-06 14:32:55 +02:00
thread-win32.h qemu-thread: Use futex for QemuEvent on Windows 2025-06-06 14:32:55 +02:00
thread.h qemu-thread: Document QemuEvent 2025-06-06 14:32:55 +02:00
throttle-options.h
throttle.h throttle: use enum ThrottleDirection instead of bool is_write 2023-08-29 10:49:24 +02:00
timed-average.h license: Simplify GPL-2.0-or-later license descriptions 2024-09-20 10:11:59 +03:00
timer.h timers: properly prefix init_clocks() 2025-11-03 11:59:32 +01:00
transactions.h transactions: Invoke clean() after everything else 2021-11-16 09:43:44 +01:00
tsan.h
typedefs.h migration: Rename save_live_complete_precopy_thread to save_complete_precopy_thread 2025-07-11 10:37:39 -03:00
unicode.h
units.h
userfaultfd.h util/userfaultfd: Remove unused uffd_poll_events 2024-10-08 15:28:55 -04:00
uuid.h util/uuid: Define UUID_STR_LEN from UUID_NONE string 2023-11-03 09:20:31 +01:00
vfio-helpers.h util/vfio-helpers: Pass Error handle to qemu_vfio_dma_map() 2021-09-07 09:08:24 +01:00
vhost-user-server.h export/vhost-user-blk: Fix consecutive drains 2023-11-28 14:56:32 +01:00
win_dump_defs.h include/qemu: add 32-bit Windows dump structures 2022-04-22 13:36:04 +04:00
xattr.h 9pfs: Add FreeBSD support 2025-09-18 21:21:29 +02:00
xxhash.h accel/tcg: include cs_base in our hash calculations 2023-06-01 11:05:05 -04:00
yank.h qapi: Fix dangling references to docs/devel/qapi-code-gen.txt 2024-01-26 07:04:53 +01:00