Thursday, July 29, 2021

Re: Policy on processor-dependent optimizations?

On 21/07/26 02:36PM, Stuart Henderson wrote:
> Ports must not use cpu features detected at build time in the default
> build.
>
> In some special cases it might make sense to have a "native" flavour
> that is not linked to the build by default (i.e. so packages are not
> normally built) as long as that doesn't change the ABI.
>
> On amd64 you can use SSE2 which is present on all 64-bit capable CPUs,
> anything else should either have a runtime cpuid check and fall back to
> another implementation, or in some special cases where something else
> is required for the software to work at all (e.g. in textproc/hyperscan)
> then it will need something else which we'd probably want to look at
> case-by-case.

Thanks. Perhaps I should put this into faq/ports/specialtopics.html and
send a patch?

> >
> > marisa 0.2.6 configuration:
> > -------------------------------
> > HOST: x86_64-unknown-openbsd6.9
> > CXX: c++
> > CXXFLAGS: -g -O2 -DMARISA_USE_POPCNT -mpopcnt -DMARISA_USE_SSE4 -msse4
>
> also this suggests the port isn't passing in CXXFLAGS from ports to the
> build environment (port shouldn't hardcode -O2).

I tried different combination of CONFIGURE_ENV / CONFIGURE_ARGS but -O2
and -pipe are still there:

HOST: x86_64-unknown-openbsd6.9
CXX: c++
CXXFLAGS: -O2 -pipe
LDFLAGS:
PREFIX: /usr/local

How should I debug this?

Here is my WIP port in case anyone wants to take a look at it: `make
install` works and I can use it, but I'm not sure if I did things in the
right way.

https://raw.githubusercontent.com/ZhanYF/static/main/libmarisa-wip.tar

(also attached in this email)

No comments:

Post a Comment