Created attachment 167513 [details] Proposed patch (since 409733 revision) for testing Hello. I raised issue about armv6 support for games/pioneer port in the bug 206811. Guido Falsi recommended to create a new bug report for it here. Current proposed patch contains the code to switch from default (presumably Clang) to GCC compiler on armv6 architecture. This may fix a configure error, which was found on 0.0.20151130 version on PortsMon for following poudriere build log: http://beefy8.nyi.freebsd.org/data/head-armv6-default/p407727_s295126/logs/errors/pioneer-0.0.20151130.log The presumable reason of such configure error is "core dump", when running a test case for assimp library support, which is GCC compiled in the multimedia/assimp port currently. This was a case for previous FreeBSD versions before 10 (e.g. 9.3) after a switch to default Clang compiler, but the same issue appeared again for FreeBSD head (11) version on armv6 architecture. It's known, that GCC compiled pioneer application on FreeBSD 10.2 amd64 creates a "core dump" after launch, while it was ok on FreeBSD 9.3 amd64 (for some releases, which I tested in a time, when I used FreeBSD 9.x version). Therefore, just a guessed switch to GCC compiler on FreeBSD armv6 may not be enough, if it core dumps also. I think, there is a "running test" needed for pioneer application on FreeBSD armv6 machine for such a patch, else it may block a further testing of default armv6 compiler on FreeBSD build machine(s), while the pioneer application may core dump on it after launch. The status of this bug report required to be new/open before confirmation of running (or not running) pioneer application on FreeBSD armv6 machine(s) from interested user(s). The pioneer application may require OpenGL 3.x graphics support, but building and/or running results (with(out) core dump(s)) are welcome to decide about armv6 support for games/pioneer port. Otherwise, this bug report might be solved by itself after successful build result(s) on PortsMon, in case of possible fixes of default armv6 compiler (or toolchain/libraries) on FreeBSD, I guess.
Update hardware category to arm from arm64 based on the headline
(In reply to Ed Maste from comment #1) > Update hardware category to arm from arm64 based on the headline Ok, thanks. Currently, I also explore the possibility to build multimedia/assimp port with native armv6 compiler, instead of GCC, on bug 207575. Maybe, if multimedia/assimp and games/pioneer ports will built with the same compiler, then the issue will be fixed.
assimp was recently fixed, but pioneer still doesn't build as it uses x86 assembly: Profiler.cpp:84:9: error: invalid output constraint '=q' in asm : "=q" (ret), "=m" (ptr_) ^ This is upstream problem. I think we should mark pioneer with ONLY_FOR_ARCHS=i386 amd64 here.
Created attachment 168806 [details] Proposed patch (since 411981 revision) with profiler non-default option Hello, Dmitry Marakasov. (In reply to comment #3) > pioneer still doesn't build as it uses x86 assembly: > > Profiler.cpp:84:9: error: invalid output constraint '=q' in asm > : "=q" (ret), "=m" (ptr_) > ^ The error is related to internal profiler, which is optional and enabled with "--enable-profiler" configure option. Looks like, upstream developers uses modified version of "High performance C++ Profiler implementation" (https://github.com/michael-mayes/high-performance-cplusplus-profiler) and tried to use it on arm platform, for example on following Git commit: "Rework slightly so that std::chrono is always used on __arm__ platforms to avoid x86 assembler!" https://github.com/pioneerspacesim/pioneer/commit/fffd081f567313687b1fbff6b2d60295308b5bbe but not all parts were ported, according to the error. Some guess why contrib/profiler source code wasn't removed from build in case of not using internal profiler is possibility to use Travis builds for pioneer on GitHub. Therefore, I propose to add optional "PROFILER" option (which is not "PROFILE", because of different meaning, not related to compiler options), which adds "--enable-profiler" option to configure arguments, in case of enabled, or removes profiler related files from build scripts, in case of disabled. The proposed patch attached. (In reply to comment #3) > This is upstream problem. I think we should mark pioneer with > ONLY_FOR_ARCHS=i386 amd64 here. There is a possibility for such a route (may be with a BROKEN_armv6 message instead), but (currently) I propose to use attached patch, e.g. included in the next version update, and see how it builds on FreeBSD armv6 build server(s). Thanks for your attention.
Created attachment 168807 [details] Proposed patch (since 411981 revision) with profiler non-default option Just changed the order of post-patch-PROFILER-off after post-patch-MODELCOMPILER-off.
Created attachment 168809 [details] Proposed patch (since 411981 revision) with profiler non-default option Changed PROFILER_CONFIGURE_ENABLE to PROFILER_CONFIGURE_ON, because on opposite it still adds -DPIONEER_PROFILER to EXTRA_CPPFLAGS on --disable-profiler, according to config.log file.
Created attachment 168810 [details] Proposed patch (since 411981 revision) with profiler non-default option - Added sed patch to remove "contrib/profiler/Makefile" from ${WRKSRC}/configure.ac file. - Added proper sed extensions for repeatedly changed files.
A commit references this bug: Author: amdmi3 Date: Sun Apr 3 12:00:26 UTC 2016 New revision: 412462 URL: https://svnweb.freebsd.org/changeset/ports/412462 Log: - Switch profiler which depends on x86 assembly off by default, fixing build on arm PR: 207559 Submitted by: lightside@gmx.coma (maintainer) Changes: head/games/pioneer/Makefile