mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-01-26 05:56:14 +01:00
Merge branch 'win32' into 'main'
build-sys: drop -mms-bitfields GCC flag See merge request GNOME/glib!3509
This commit is contained in:
commit
e051f4abaf
@ -65,10 +65,10 @@ Building software that just *uses* GLib or GTK also require to have
|
||||
the right compiler set up the right way. If you intend to use MinGW-GCC,
|
||||
follow the relevant instructions below in that case, too.
|
||||
|
||||
You should link to GLib using the `-mms-bitfields` GCC flag. This flag means
|
||||
that the struct layout rules are identical to those used by MSVC. This is
|
||||
essential if the same DLLs are to be usable both from gcc- and MSVC-compiled
|
||||
code.
|
||||
You should link to GLib using the `-mms-bitfields` GCC flag. It is the default
|
||||
since 2012 (GCC 4.7). This flag means that the struct layout rules are identical
|
||||
to those used by MSVC. This is essential if the same DLLs are to be usable both
|
||||
from gcc- and MSVC-compiled code.
|
||||
|
||||
## Cross-CRT issues
|
||||
|
||||
|
@ -443,7 +443,7 @@ pkg.generate(libglib,
|
||||
libraries : [libintl_deps],
|
||||
libraries_private : [win32_ldflags],
|
||||
subdirs : ['glib-2.0'],
|
||||
extra_cflags : ['-I${libdir}/glib-2.0/include'] + win32_cflags,
|
||||
extra_cflags : ['-I${libdir}/glib-2.0/include'],
|
||||
variables : [
|
||||
'bindir=' + '${prefix}' / get_option('bindir'),
|
||||
'datadir=' + '${prefix}' / get_option('datadir'),
|
||||
|
@ -50,7 +50,6 @@ if cc.get_id() == 'msvc'
|
||||
noseh_link_args = ['/SAFESEH:NO']
|
||||
else
|
||||
noseh_link_args = []
|
||||
# -mms-bitfields vs -fnative-struct ?
|
||||
endif
|
||||
|
||||
host_system = host_machine.system()
|
||||
@ -2346,15 +2345,8 @@ else
|
||||
export_dynamic_ldflags = ['-Wl,--export-dynamic']
|
||||
endif
|
||||
|
||||
win32_cflags = []
|
||||
win32_ldflags = []
|
||||
if host_system == 'windows' and cc.get_id() != 'msvc' and cc.get_id() != 'clang-cl'
|
||||
# Ensure MSVC-compatible struct packing convention is used when
|
||||
# compiling for Win32 with gcc. It is used for the whole project and exposed
|
||||
# in glib-2.0.pc.
|
||||
win32_cflags = ['-mms-bitfields']
|
||||
add_project_arguments(win32_cflags, language : 'c')
|
||||
|
||||
# Win32 API libs, used only by libglib and exposed in glib-2.0.pc
|
||||
win32_ldflags = ['-lws2_32', '-lole32', '-lwinmm', '-lshlwapi', '-luuid']
|
||||
elif host_system == 'cygwin'
|
||||
|
Loading…
Reference in New Issue
Block a user