Skip to content

Commit

Permalink
Separate includes from submodules from system-wide includes
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
vrurg committed Aug 27, 2019
1 parent d79e7d5 commit 2bcb911
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 8 deletions.
17 changes: 9 additions & 8 deletions Configure.pl
Expand Up @@ -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'}) {
Expand All @@ -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"
Expand All @@ -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"
Expand Down Expand Up @@ -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";
}
Expand Down Expand Up @@ -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"
Expand Down Expand Up @@ -541,7 +542,7 @@ sub uniq {
print "\n", <<TERM, "\n";
make: $config{make}
compile: $config{cc} $config{cflags}
includes: $config{cincludes}
includes: $config{cincludes} $config{moar_cincludes}
link: $config{ld} $config{ldflags}
libs: $config{ldlibs}
Expand Down
1 change: 1 addition & 0 deletions build/Makefile.in
Expand Up @@ -40,6 +40,7 @@ PKGCONFIGDIR = @prefix@/share/pkgconfig

CFLAGS = @cflags@ @ccdef@MVM_TRACING=$(TRACING) @ccdef@MVM_CGOTO=$(CGOTO) @ccdef@MVM_RDTSCP=$(RDTSCP)
CINCLUDES = @cincludes@ \
@moar_cincludes@ \
@ccinc@@shaincludedir@ \
@ccinc@3rdparty/tinymt \
@ccinc@3rdparty/dynasm \
Expand Down

0 comments on commit 2bcb911

Please sign in to comment.