Summary: | [PATCH] games/pioneer: armv6 support issue | ||
---|---|---|---|
Product: | Ports & Packages | Reporter: | lightside <lightside> |
Component: | Individual Port(s) | Assignee: | Dmitry Marakasov <amdmi3> |
Status: | Closed FIXED | ||
Severity: | Affects Some People | CC: | emaste, madpilot |
Priority: | --- | Keywords: | patch |
Version: | Latest | ||
Hardware: | arm | ||
OS: | Any | ||
Attachments: |
Description
lightside
2016-02-28 13:32:54 UTC
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 |