Hi folks,
I develop software for work that uses some advanced cpu features and
parallelism. While I fully understand that high-performance is not a
focus for OpenBSD, I would still like to be able to test basic stuff on
my Laptop (which happens to run OpenBSD). So, before I get my hands
dirty on this, I'd like to ask if there are structural issues and/or
policies preventing those features from working, or whether just no-one
was interested up until now (I have done some basic searching but didn't
come up with too much).
The features in question are:
1) OpenMP with the GCC-port. It is disabled by default. Is there a
reason for this? Are there any known "blockers"? Should I be able to
make it work, would patches be accepted?
2) CPU-features like POPCNT, AVX are apparently not supported right now
(or at least not with gcc). Also if you build software with the
gcc-4.9-port and specify -march=native gcc wil produce code that
actually uses instructions that are not supported, and then fail with
messages like this:
/tmp//ccF2Aqg7.s: Assembler messages:
/tmp//ccF2Aqg7.s:1668791: Error: no such instruction: `popcntl
-4(%rbp),%eax'
/tmp//ccF2Aqg7.s:1669741: Error: no such instruction: `popcntq
-8(%rbp),%rax'
-> Are there plans to support more modern CPU-extensions and is there a
list somewhere of which extensions are supported and which ones aren't?
I guess they could be useful for other low-level stuff like encryption,
as well..
--> If not, should the gcc-port be adapted to not offer those extensions
that aren't supported?
Thanks and best regards,
Hannes