Bug 238471 - biology/ncbi-blast+ fails to build with current GCC: seqdb_reader/test/seqdb_perf.cpp:152:34: error: 'kScanUncompressed' not specified in enclosing 'parallel'
Summary: biology/ncbi-blast+ fails to build with current GCC: seqdb_reader/test/seqdb_...
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Some People
Assignee: Jason W. Bacon
Keywords: needs-patch
Depends on:
Blocks: 238330
  Show dependency treegraph
Reported: 2019-06-10 20:50 UTC by Gerald Pfeifer
Modified: 2019-07-12 23:59 UTC (History)
1 user (show)

See Also:


Note You need to log in before you can comment on or make changes to this bug.
Description Gerald Pfeifer freebsd_committer 2019-06-10 20:50:55 UTC
See PR 238330 for details, which is about updating the default version of
GCC from 8 to 9. 

Detailed logs at:


The update to a newer version of GCC is blocked by this issue which 
appears to be about improper use of GOMP:

/wrkdirs/usr/ports/biology/ncbi-blast+/work/ncbi-blast-2.8.1+-src/c++/src/objtools/blast/seqdb_reader/test/seqdb_perf.cpp:152:34: error: 'kScanUncompressed' not specified in enclosing 'parallel'
  152 |             if (m_DbIsProtein || kScanUncompressed) {
      |                                  ^~~~~~~~~~~~~~~~~
/wrkdirs/usr/ports/biology/ncbi-blast+/work/ncbi-blast-2.8.1+-src/c++/src/objtools/blast/seqdb_reader/test/seqdb_perf.cpp:140:13: error: enclosing 'parallel'
  140 |     #pragma omp parallel default(none) num_threads(m_DbHandles.size()) \
      |             ^~~
gmake[7]: *** [/wrkdirs/usr/ports/biology/ncbi-blast+/work/ncbi-blast-2.8.1+-src/c++/ReleaseMT/build/Makefile.rules:88: seqdb_perf.o] Error 1
Comment 1 Gerald Pfeifer freebsd_committer 2019-06-10 20:54:47 UTC
Reassigning to maintainer.
Comment 2 Jason W. Bacon freebsd_committer 2019-06-11 23:49:40 UTC
Looking into it.
Comment 3 Jason W. Bacon freebsd_committer 2019-06-12 16:42:18 UTC
2.9.0 builds fine with GCC 9.


I'll commit an update following full testing.
Comment 4 commit-hook freebsd_committer 2019-06-12 23:54:29 UTC
A commit references this bug:

Author: jwb
Date: Wed Jun 12 23:53:33 UTC 2019
New revision: 504047
URL: https://svnweb.freebsd.org/changeset/ports/504047

  biology/ncbi-blast+: Upgrade to 2.9.0

  Fixes build issue with gcc9

  PR:             238471
  Reported by:    gerald

Comment 5 Gerald Pfeifer freebsd_committer 2019-06-13 06:21:32 UTC
Great, thank you, Jason!
Comment 7 commit-hook freebsd_committer 2019-07-11 13:53:49 UTC
A commit references this bug:

Author: jwb
Date: Thu Jul 11 13:53:31 UTC 2019
New revision: 506409
URL: https://svnweb.freebsd.org/changeset/ports/506409

  ncbi-blast+: Fix build with gcc9

  GCC 9 requires OpenMP variables to be explicitly defined as shared or private
  where earlier versions fell back on default.  New patch sent upstream.

  PR:             238471
  Reported by:    gerald

Comment 8 Jason W. Bacon freebsd_committer 2019-07-11 13:58:57 UTC
Build was returning 0 status despite the failure in seqdb_perf.cpp.  I must have missed the plist issue during install, which is odd because is regularly use a script for port testing that runs portlint and all port stages.  Sorry for the mishap.
Comment 9 Joseph Mingrone freebsd_committer 2019-07-12 18:50:00 UTC
There is a plist issue now.


====> Running Q/A tests (stage-qa)
Notice: You have some Perl modules as dependencies but you do not have devel/p5-Module-CoreList installed, the perlcore QA check gets better results when using it, especially with older Perl versions.
====> 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
Error: Missing: bin/seqdb_perf
===> Error: Plist issues found.
*** Error code 1
Comment 10 Jason W. Bacon freebsd_committer 2019-07-12 23:59:36 UTC
No change is too small to break a build...

GCC 8 and 9 are incompatible in handling const variables with OpenMP
default(none).  All const variables default to shared even with default(none)
present.  8 errors out if a const variable is explicitly defined as shared and
9 requires an explicit definition.

Using an upstream trunk patch for now, which checks the compiler version.
Also discussing more portable approaches to avoid future issues.