mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-11-10 03:16:17 +01:00
build-sys: drop -mms-bitfields GCC flag
This flag is problematic for some usages, and is no longer needed since ~2012 GCC 4.7 (https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=a6c467624ade35128) It is dropped from MINGW since: https://github.com/msys2/MINGW-packages/pull/12891 Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
This commit is contained in:
parent
741a561c4d
commit
252bbcd207
@ -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()
|
||||
@ -2339,15 +2338,8 @@ else
|
||||
export_dynamic_cflags = ['-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