Fix cross build error for Windows with gcc

This commit puts an additional underscore before the external symbol
`_g_binary_test1_resource_data` when using gcc for Windows, to match
the compiler's expectation.

Fixes #2571

Signed-off-by: Ralf Habacker <ralf.habacker@freenet.de>
This commit is contained in:
Ralf Habacker 2022-01-06 09:18:37 +01:00
parent 7f071de3e3
commit 229f7d4a03

View File

@ -734,11 +734,16 @@ if not meson.is_cross_build() or meson.has_exe_wrapper()
'-o','@OUTPUT@']) '-o','@OUTPUT@'])
# Rename symbol to match the one in the C file # Rename symbol to match the one in the C file
if cc.get_id() == 'gcc' and host_system == 'windows'
underscore = '_'
else
underscore = ''
endif
test_resources_binary2 = custom_target('test_resources2.o', test_resources_binary2 = custom_target('test_resources2.o',
input : test_resources_binary, input : test_resources_binary,
output : 'test_resources2.o', output : 'test_resources2.o',
command : [objcopy, command : [objcopy,
'--add-symbol','_g_binary_test1_resource_data=.data:0', '--add-symbol', underscore + '_g_binary_test1_resource_data=.data:0',
'@INPUT@', '@INPUT@',
'@OUTPUT@']) '@OUTPUT@'])