Created attachment 190337 [details] update for biology/seqan * update both ports to 2.4.0 * add OPTIMIZED_CFLAGS option to biology/seqan-apps * move a section of the biology/seqan-apps/Makefile around to satisfy portlint * remove BROKEN_* from biology/seqan-apps/Makefile because upstream now claims support for these architectures biology/seqan: root@celegans /usr/ports/biology/seqan # portlint looks fine. root@celegans /usr/ports/biology/seqan # make check-plist ====> Checking for pkg-plist issues (check-plist) ===> Parsing plist ===> Checking for items in STAGEDIR missing from pkg-plist ===> Checking for items in pkg-plist which are not in STAGEDIR ===> No pkg-plist issues found (check-plist) root@celegans /usr/ports/biology/seqan # make stage-qa ====> Running Q/A tests (stage-qa) /!\ To run stage-qa automatically add DEVELOPER=yes to your environment /!\ biology/seqan-apps: root@celegans /usr/ports/biology/seqan-apps # portlint looks fine. root@celegans /usr/ports/biology/seqan-apps # make check-plist ====> Checking for pkg-plist issues (check-plist) ===> Parsing plist ===> Checking for items in STAGEDIR missing from pkg-plist ===> Checking for items in pkg-plist which are not in STAGEDIR ===> No pkg-plist issues found (check-plist) root@celegans /usr/ports/biology/seqan-apps # make stage-qa ====> Running Q/A tests (stage-qa) /!\ To run stage-qa automatically add DEVELOPER=yes to your environment /!\ root@celegans /usr/ports/biology/seqan-apps #
Created attachment 190338 [details] update for biology/seqan-apps
Created attachment 190502 [details] Updated patch: biology/seqan
Created attachment 190503 [details] Updated patch: biology/seqan-apps I updated patches. Particularly, USE_GCC isn't needed. AVX2/ARCH_AVX512_xxx should be added too.
> I updated patches. Thanks! > Particularly, USE_GCC isn't needed. Because base compiler and most others are now c++14 safe? > AVX2/ARCH_AVX512_xxx should be added too. Sure, I can do that. Should the options be named as the extension? I noticed you renamed it from OPTIMIZED_CFLAGS. Doesn't that mean that people who have a custom make.conf with OPTIMIZED_CFLAGS set don't get the optimizations by default? But maybe they would have SSE4 set then, as well. (I have been using only packages for years now) Actually, I thought about making the SSE4 option on by default since I guess >90% of amd64 platforms have SSE4 nowadays, or not? Or would flavors make sense here?
(In reply to Hannes Hauswedell from comment #4) > Thanks! You're welcome! Thank you for submitting the patches! > Doesn't that mean that people who have a custom make.conf with OPTIMIZED_CFLAGS SIMD aren't optimization options. They are separate. SIMD can be or not be optimized. The effect is speeding it up, but they are different. People shouldn't have SIMD options in /etc/make.conf > I thought about making the SSE4 option on by default This is a bad idea. SIMD is poorly supported on FreeBSD. SSE2 is a base level. > > AVX2/ARCH_AVX512_xxx should be added too. > Sure, I can do that. This would be great! Thank you, Yuri
(In reply to Hannes Hauswedell from comment #4) > Because base compiler and most others are now c++14 safe? I think so. Also, we only need it to work on 10/11/12, I verified and it works on these systems. So c++14-lang isn't practically important. --- What I also don't understand is why USES=compiler:openmp always switches to gcc. clang does support OpenMP. And clang also builds seqan-apps fine. But USES=compiler:openmp here is fine.
> People shouldn't have SIMD options in /etc/make.conf Why not? SIMD options get activated by -march=native and quite a few people set that... > This is a bad idea. SIMD is poorly supported on FreeBSD. SSE2 is a base level. In what regard is SIMD poorly supported? I have been using SSE4 and all my benchmarks say that it actually works quite well. (questions just out of curiosity, I am fine with leaving it turned off, because of older CPUs) > I think so. Also, we only need it to work on 10/11/12, I verified and it works on these systems. So c++14-lang isn't practically important. While hopefully not common: this will break now if someone hardcodes their Ports-compiler to be gcc48 (independent of FreeBSD version), because the port no longer know that it doesn't work with pre-c++14 compilers. > What I also don't understand is why USES=compiler:openmp always switches to gcc. clang does support OpenMP. And clang also builds seqan-apps fine. But USES=compiler:openmp here is fine. The base clang does not come with OpenMP libraries unfortunately. Base-clang + devel/openmp works, ports-clang>=3.9 work and all the GCCs work. But I don't know how the ports system decides between these options. [note that seqan-apps actually does compile without openmp, but it then creates binaries without multi-threading which renders the apps more or less useless, because they usually work on large scientific datasets]
(In reply to Hannes Hauswedell from comment #7) > > People shouldn't have SIMD options in /etc/make.conf > Why not? SIMD options get activated by -march=native and quite a few people set that... > In what regard is SIMD poorly supported? Setting SIMD options in /etc/make.conf is a hack. Currently the right way is to have port options in every package that depends on SIMD optimizations. Users who need SIMD should have those options set locally, and rebuild relevant packages. Ideally, port/packaging system should support SIMD. You should set the SIMD level as a global setting, and pkg should install/update with package options/flavors set to that SIMD. But this isn't implemented yet. > The base clang does not come with OpenMP libraries unfortunately. Base-clang + devel/openmp works I was just wondering why doesn't USES=compiler:openmp use clang+libimp. Instead it just switches to gcc. > While hopefully not common: this will break now if someone hardcodes their Ports-compiler to be gcc48 (independent of FreeBSD version), because the port no longer know that it doesn't work with pre-c++14 compilers. This is not supported. Such people should upgrade gcc or use clang.
Created attachment 190628 [details] update for biology/seqan-apps I have updated the patch to include an option for AVX2 and for native builds. I don't think AVX512 is optimised enough on any of the apps, yet, to provide a benefit and people can just chose NATIVE to get it. (And I didn't want to add three xtra options that no-one uses ;-) ).
*polite ping*
(In reply to Hannes Hauswedell from comment #10) Hi Hannes, I will look at this today. Thanks for reminding! Yuri
friendly reminder :)
Sorry for the delay. Committed. Thank you for the update!
A commit references this bug: Author: yuri Date: Sat Mar 10 06:21:38 UTC 2018 New revision: 464043 URL: https://svnweb.freebsd.org/changeset/ports/464043 Log: biology/seqan-apps, biology/seqan: Update to 2.4.0 Port changes for biology/seqan-apps: * Changed to DISTVERSION * Updated COMMENT * Added USES=compiler:openmp * Removed BROKEN_xx (upstream now claims support for these architectures) * Removed USE_GCC * Added SSE4/AVX2/NATIVE SIMD options Port changes for biology/seqan: * Changed to DISTVERSION * Added NO_ARCH * Added PORTDOCS=* * Updated do-install PR: 225682 Submitted by: Hannes Hauswedell <h2+fbsdports@fsfe.org> (maintainer) Approved by: tcberner (mentor, implicit) Changes: head/biology/seqan/Makefile head/biology/seqan/distinfo head/biology/seqan/pkg-descr head/biology/seqan/pkg-plist head/biology/seqan-apps/Makefile head/biology/seqan-apps/distinfo head/biology/seqan-apps/pkg-plist