Opened 5 years ago

Closed 4 years ago

#58321 closed defect (fixed)

ragel: fails to build with libstdc++ on macOS 10.14

Reported by: ra1nb0w Owned by: stromnov (Andrey Stromnov)
Priority: Normal Milestone:
Component: ports Version: 2.5.4
Keywords: Cc:
Port: ragel

Description

On macOS 10.14.4 18E226 and with Xcode 10.2 10E125

ragel fail to build with the following error

OSX10.14.sdk -pipe -Os -stdlib=libstdc++ -isysroot/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk -arch x86_64 -MT libfsm_la-fsmattach.lo -MD -MP -MF .deps/libfsm_la-fsmattach.Tpo -c fsmattach.cc  -fno-common -DPIC -o .libs/libfsm_la-fsmattach.o
:info:build warning: include path for stdlibc++ headers not found; pass '-stdlib=libc++' on the command line to use the libc++ standard library instead [-Wstdlibcxx-not-found]
:info:build warning: include path for stdlibc++ headers not found; pass '-stdlib=libc++' on the command line to use the libc++ standard library instead [-Wstdlibcxx-not-found]
:info:build warning: include path for stdlibc++ headers not found; pass '-stdlib=libc++' on the command line to use the libc++ standard library instead [-Wstdlibcxx-not-found]
:info:build warning: include path for stdlibc++ headers not found; pass '-stdlib=libc++' on the command line to use the libc++ standard library instead [-Wstdlibcxx-not-found]
:info:build warning: include path for stdlibc++ headers not found; pass '-stdlib=libc++' on the command line to use the libc++ standard library instead [-Wstdlibcxx-not-found]
:info:build warning: include path for stdlibc++ headers not found; pass '-stdlib=libc++' on the command line to use the libc++ standard library instead [-Wstdlibcxx-not-found]
:info:build warning: include path for stdlibc++ headers not found; pass '-stdlib=libc++' on the command line to use the libc++ standard library instead [-Wstdlibcxx-not-found]
:info:build warning: include path for stdlibc++ headers not found; pass '-stdlib=libc++' on the command line to use the libc++ standard library instead [-Wstdlibcxx-not-found]
:info:build In file included from fsmap.cc:23:
:info:build In file included from ./fsmgraph.h:27:
:info:build ./ragel.hIn file included from idbase.cc:24:
:info:build ./ragel.h:27:10: fatal error: 'iostream' file not found
:info:build #include <iostream>
:info:build          ^~~~~~~~~~
:info:build In file included from fsmcond.cc:31:27:10: :
:info:build In file included from ./fsmgraph.h:27:
:info:build fatal error./ragel.h:27:10: fatal error: 'iostream' file not found
:info:build #include <iostream>
:info:build          ^~~~~~~~~~
:info:build : 'iostream' file not found
:info:build #include <iostream>
:info:build          ^~~~~~~~~~
:info:build In file included from fsmmin.cc:23:
:info:build In file included from ./fsmgraph.h:27:
:info:build ./ragel.h:27:10: fatal error: 'iostream' file not found
:info:build #include <iostream>
:info:build          ^~~~~~~~~~
:info:build In file included from fsmbase.cc:23:
:info:build In file included from ./fsmgraph.h:27:
:info:build ./ragel.h:27:10: fatal error: 'iostream' file not found
:info:build #include <iostream>
:info:build          ^~~~~~~~~~
:info:build In file included from fsmstate.cc:23:
:info:build In file included from ./fsmgraph.h:27:
:info:build ./ragel.h:27:10: fatal error: 'iostream' file not found
:info:build #include <iostream>
:info:build          ^~~~~~~~~~
:info:build fsmgraph.cc:24:10: fatal error: 'iostream' file not found
:info:build #include <iostream>
:info:build          ^~~~~~~~~~
:info:build In file included from fsmattach.cc:25:
:info:build In file included from ./fsmgraph.h:27:
:info:build ./ragel.h:27:10: fatal error: 'iostream' file not found
:info:build #include <iostream>
:info:build          ^~~~~~~~~~
:info:build 1 warning and 1 error generated.
:info:build 1 warning and 1 error generated.
:info:build make[3]: *** [libfsm_la-fsmap.lo] Error 1
:info:build make[3]: *** Waiting for unfinished jobs....
:info:build 1 warning and 1 error generated.
:info:build make[3]: *** [libfsm_la-fsmstate.lo] Error 1
:info:build 1 warning and 1 error generated.
:info:build make[3]: *** [libfsm_la-fsmattach.lo] Error 1
:info:build 1 warning and 1 error generated.
:info:build make[3]: *** [libfsm_la-fsmmin.lo] Error 1
:info:build 1 warning and 1 error generated.
:info:build 1 warning and 1 error generated.
:info:build 1 warning and 1 error generated.
:info:build make[3]: *** [libfsm_la-fsmbase.lo] Error 1
:info:build make[3]: *** [libfsm_la-idbase.lo] Error 1
:info:build make[3]: *** [libfsm_la-fsmcond.lo] Error 1
:info:build make[3]: *** [libfsm_la-fsmgraph.lo] Error 1
:info:build make[3]: Leaving directory `/opt/local/var/macports/build/_Users_rainbow_sources_github_macports-ports_lang_ragel/ragel/work/ragel-7.0.0.11/src'
:info:build make[2]: *** [all-recursive] Error 1
:info:build make[2]: Leaving directory `/opt/local/var/macports/build/_Users_rainbow_sources_github_macports-ports_lang_ragel/ragel/work/ragel-7.0.0.11/src'
:info:build make[1]: *** [all] Error 2
:info:build make[1]: Leaving directory `/opt/local/var/macports/build/_Users_rainbow_sources_github_macports-ports_lang_ragel/ragel/work/ragel-7.0.0.11/src'
:info:build make: *** [all-recursive] Error 1

Change History (11)

comment:1 Changed 5 years ago by ra1nb0w

Summary: ragel: fail to buildragel: fails to build

comment:2 Changed 5 years ago by mf2k (Frank Schima)

Cc: stromnov removed
Owner: set to stromnov
Status: newassigned

comment:3 Changed 5 years ago by ra1nb0w

thank you mf2k. Now I understood how to assign a ticket on trac ;-)

comment:4 Changed 5 years ago by jmroot (Joshua Root)

Looks like Xcode 10 removed support for building against libstdc++.

comment:5 Changed 5 years ago by ra1nb0w

yes and if I use libc++ we come back to

fatal error: 'ext/stdio_filebuf.h' file not found

tracked on #40924. That file is gcc specific and in clang was removed.

At the moment I see only two solutions:

  • back to compiler_blacklist_versions
  • move back to stable (6.10) that build fine. I don't know why @stromnov moved to 7.0.0.11 (development). Maybe create ragel and ragel-devel

Anyway, I think that this problem will arise for many packages.

comment:6 Changed 5 years ago by essandess (Steve Smith)

Confirming the issue, and rolling back to 6.10 works in the meantime:

git clone --single-branch https://github.com/macports/macports-ports.git
cd macports-ports/
git checkout 4b72f12e19e746d94db029eb72d78169e1bf7649
cd lang/ragel
sudo port install

comment:7 Changed 5 years ago by ra1nb0w

thanks essandess for the report. Maybe we can move back the port seen that the maintainer didn't answer.

comment:8 Changed 5 years ago by cjones051073 (Chris Jones)

Forcing the use of libstdc++ as the current version of the ragel port does, is not a good idea for a number of reasons.

So the best solution would be to remove the lines

# fatal error: 'ext/stdio_filebuf.h' file not found
configure.cxx_stdlib libstdc++

and then find some other solution to making the header available (such as simply providing a version of it under the MacPorts ${prefix}/include

comment:10 Changed 5 years ago by ra1nb0w

Sorry for the delay. The PR works fine on macOS 10.14.4. Why do you created a new port for the library and don't use patchfiles? to make sdtio_filebuf.h, and others in the future, usable by others? thanks

comment:11 Changed 4 years ago by ryandesign (Ryan Carsten Schmidt)

Resolution: fixed
Status: assignedclosed
Summary: ragel: fails to buildragel: fails to build with libstdc++ on macOS 10.14

The PR was merged so I assume this ticket can be closed.

Note: See TracTickets for help on using tickets.