-
Notifications
You must be signed in to change notification settings - Fork 221
Build error CentOS 8 #496
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
So I figured out a workaround for this. It turns out that in my case the issue was in the default QT5 config. In |
I can confirm this on Fedora 31, both the succesful build with -noruby and the succesful build with the change in gcc-base.conf. |
Thanks for this information. This means that Matthias |
Hi Matthias, I tried to patch tlInternational.h, line 29, changing #include to #include "string", to no avail, and hence I don't think that's the problem. I think it has to do with the #include_next macro in combination with the -isystem flag. According to https://stackoverflow.com/questions/37218953/isystem-on-a-system-include-directory-causes-errors, -isystem adds a directory to the list of directories containing system headers, and also places it at the beginning. #include_next finds a header file depending on from which directory the macro is called (if I understood it correctly). I'm not sure whose responsibility it is to fix this bug. It seems to be a system or QT issue. It is good to have a workaround available though, thanks Fweeb! |
I'm looking at this too .. I see the problem is because the Ruby header location is coincident with the standard headers. Both are inside "/usr/include" on CentOS 8. qmake in it's unfathomable smartness will use "-isystem" for this purpose and hence spoil the system include hierarchy. Essentially a cure could be to drop "RUBYINCLUDE" and "RUBYINCLUDE2" from the INCLUDEPATH in Matthias |
I think this build script patch should fix the issue: index 7a8e95ee..7c9b9b74 100755
--- a/build.sh
+++ b/build.sh
@@ -587,6 +587,13 @@ $QMAKE -v
# Force a minimum rebuild because of version info
touch $CURR_DIR/src/version/version.h
+if [ "$RUBYINCLUDE" = "/usr/include" ]; then
+ RUBYINCLUDE=
+fi
+if [ "$RUBYINCLUDE2" = "/usr/include" ]; then
+ RUBYINCLUDE2=
+fi
+
qmake_options=(
-recursive
CONFIG+="$CONFIG" A more generic solution is appreciated. I think "/usr/include" and "/usr/local/include" need to be looked up. And Matthias |
BTW: I could not find qt5 and qt5-devel for CentOS 8. I had to pull them from the PowerTools repo. Do you have another source? Matthias |
Hi Matthias, I can confirm that the patch you proposed fixes the issue on my Fedora 31 system. As for the PYTHONINCLUDE variable, on my system, that points to a different directory, but this might not be the case on other users' systems. Another solution might be to check for the default system dirs in the python/ruby snippets that you use to determine the respective include directories, or have small programs in place to determine the values of these variables, based on "gcc -xc -E -v -" and "gcc -xc++ -E -V -" (I'm sure other compilers have their own way of producing lists of the include directories used.) Those are not nice solutions either, but if everything was always nice and easy, build environments could figure out by themselves how to build a piece of software :). Kind regards, |
There is a regular RPM build now for CentOS 8. Downloads are available for master branch here: https://www.klayout.org/downloads/master/ |
Since there currently isn't a CentOS 8 build on the Klayout website, I've been trying to build it myself. I have the following packages installed for building:
Klayout builds fine if you build without Ruby using the
-noruby
flag. Unfortunately, that also means I can't run our DRC scripts. Trying to build with Ruby yields the following error:This seems awfully strange because
stdlib.h
is absolutely on this machine (in/usr/include
). What am I missing here?The text was updated successfully, but these errors were encountered: