From 2bcb911d320cc02893e813f9ce9e649946942fe1 Mon Sep 17 00:00:00 2001 From: Vadim Belman Date: Tue, 27 Aug 2019 18:40:20 -0400 Subject: [PATCH 1/2] Separate includes from submodules from system-wide includes Currently configuration variable cincludes contains `-I` flags for both includes from `3rdparty` for for those found with `pkg-config`. This is not correct as `cincludes` can be used by `NQP` and `Rakudo` for their C compilations. An example of a situation when this is necessary is rakudo/rakudo#3136 where `ffi.h` cannot be found even though `moar` is being compiled with it. --- Configure.pl | 17 +++++++++-------- build/Makefile.in | 1 + 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/Configure.pl b/Configure.pl index 92331b3fa9..828c815acc 100755 --- a/Configure.pl +++ b/Configure.pl @@ -262,6 +262,7 @@ sub uniq { # conditionally set include dirs and install rules $config{cincludes} = '' unless defined $config{cincludes}; +$config{moar_cincludes} = '' unless defined $config{moar_cincludes}; $config{lincludes} = '' unless defined $config{lincludes}; $config{install} = '' unless defined $config{install}; if ($args{'has-libuv'}) { @@ -270,8 +271,8 @@ sub uniq { setup_native_library('libuv') if $config{pkgconfig_works}; } else { - $config{cincludes} .= ' ' . $defaults{ccinc} . '3rdparty/libuv/include' - . ' ' . $defaults{ccinc} . '3rdparty/libuv/src'; + $config{moar_cincludes} .= ' ' . $defaults{ccinc} . '3rdparty/libuv/include' + . ' ' . $defaults{ccinc} . '3rdparty/libuv/src'; $config{install} .= "\t\$(MKPATH) \"\$(DESTDIR)\$(PREFIX)/include/libuv\"\n" . "\t\$(MKPATH) \"\$(DESTDIR)\$(PREFIX)/include/libuv/uv\"\n" . "\t\$(CP) 3rdparty/libuv/include/*.h \"\$(DESTDIR)\$(PREFIX)/include/libuv\"\n" @@ -284,7 +285,7 @@ sub uniq { setup_native_library('atomic_ops') if $config{pkgconfig_works}; } else { - $config{cincludes} .= ' ' . $defaults{ccinc} . '3rdparty/libatomicops/src'; + $config{moar_cincludes} .= ' ' . $defaults{ccinc} . '3rdparty/libatomicops/src'; my $lao = '$(DESTDIR)$(PREFIX)/include/libatomic_ops'; $config{install} .= "\t\$(MKPATH) \"$lao/atomic_ops/sysdeps/armcc\"\n" . "\t\$(MKPATH) \"$lao/atomic_ops/sysdeps/gcc\"\n" @@ -320,7 +321,7 @@ sub uniq { } } else { - $config{cincludes} .= ' ' . $defaults{ccinc} . '3rdparty/libtommath'; + $config{moar_cincludes} .= ' ' . $defaults{ccinc} . '3rdparty/libtommath'; $config{install} .= "\t\$(MKPATH) \"\$(DESTDIR)\$(PREFIX)/include/libtommath\"\n" . "\t\$(CP) 3rdparty/libtommath/*.h \"\$(DESTDIR)\$(PREFIX)/include/libtommath\"\n"; } @@ -363,9 +364,9 @@ sub uniq { } else { $config{nativecall_backend} = 'dyncall'; - $config{cincludes} .= ' ' . $defaults{ccinc} . '3rdparty/dyncall/dynload' - . ' ' . $defaults{ccinc} . '3rdparty/dyncall/dyncall' - . ' ' . $defaults{ccinc} . '3rdparty/dyncall/dyncallback'; + $config{moar_cincludes} .= ' ' . $defaults{ccinc} . '3rdparty/dyncall/dynload' + . ' ' . $defaults{ccinc} . '3rdparty/dyncall/dyncall' + . ' ' . $defaults{ccinc} . '3rdparty/dyncall/dyncallback'; $config{install} .= "\t\$(MKPATH) \"\$(DESTDIR)\$(PREFIX)/include/dyncall\"\n" . "\t\$(CP) 3rdparty/dyncall/dynload/*.h \"\$(DESTDIR)\$(PREFIX)/include/dyncall\"\n" . "\t\$(CP) 3rdparty/dyncall/dyncall/*.h \"\$(DESTDIR)\$(PREFIX)/include/dyncall\"\n" @@ -541,7 +542,7 @@ sub uniq { print "\n", < Date: Tue, 27 Aug 2019 18:48:51 -0400 Subject: [PATCH 2/2] Replace tabs with spaces for proper indentation --- build/Makefile.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/Makefile.in b/build/Makefile.in index cd4b8261a9..5f9cc858ba 100644 --- a/build/Makefile.in +++ b/build/Makefile.in @@ -40,7 +40,7 @@ PKGCONFIGDIR = @prefix@/share/pkgconfig CFLAGS = @cflags@ @ccdef@MVM_TRACING=$(TRACING) @ccdef@MVM_CGOTO=$(CGOTO) @ccdef@MVM_RDTSCP=$(RDTSCP) CINCLUDES = @cincludes@ \ - @moar_cincludes@ \ + @moar_cincludes@ \ @ccinc@@shaincludedir@ \ @ccinc@3rdparty/tinymt \ @ccinc@3rdparty/dynasm \