#66809 closed defect (fixed)

zmq +nss: fatal error: prlink.h: No such file or directory

Reported by: barracuda156 Owned by: stromnov (Andrey Stromnov)
Priority: Normal Milestone:
Component: ports Version: 2.8.0
Keywords: Cc: michaelld (Michael Dickens), ryandesign (Ryan Carsten Schmidt)
Port: zmq

Description (last modified by barracuda156)

/opt/local/include/nss/seccomon.h:17:10: fatal error: prtypes.h: No such file or directory
   17 | #include "prtypes.h"
      |          ^~~~~~~~~~~
compilation terminated.
/opt/local/include/nss/secport.h:13:10: fatal error: prlink.h: No such file or directory
   13 | #include "prlink.h"
      |          ^~~~~~~~~~
compilation terminated.
In file included from /opt/local/include/nss/seccomon.h:27,
                 from /opt/local/include/nss/nss.h:34,
                 from /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_zmq/zmq/work/libzmq-4.3.4/src/ctx.cpp:56:
/opt/local/include/nss/secport.h:77: error: ‘PLArenaPool’ does not name a type
/opt/local/include/nss/secport.h:78: error: ‘PRUint32’ does not name a type
/opt/local/include/nss/secport.h:96: error: expected initializer before ‘*’ token
/opt/local/include/nss/secport.h:97: warning: ‘PORT_FreeArena’ initialized and declared ‘extern’
/opt/local/include/nss/secport.h:97: error: variable or field ‘PORT_FreeArena’ declared void
/opt/local/include/nss/secport.h:97: error: ‘PLArenaPool’ was not declared in this scope
/opt/local/include/nss/secport.h:97: error: ‘arena’ was not declared in this scope
/opt/local/include/nss/secport.h:97: error: ‘PRBool’ was not declared in this scope
/opt/local/include/nss/secport.h:105: warning: ‘PORT_ArenaAlloc’ initialized and declared ‘extern’
/opt/local/include/nss/secport.h:105: error: ‘PLArenaPool’ was not declared in this scope
/opt/local/include/nss/secport.h:105: error: ‘arena’ was not declared in this scope
/opt/local/include/nss/secport.h:105: error: expected primary-expression before ‘size’
/opt/local/include/nss/secport.h:105: error: initializer expression list treated as compound expression
/opt/local/include/nss/secport.h:106: warning: ‘PORT_ArenaZAlloc’ initialized and declared ‘extern’
/opt/local/include/nss/secport.h:106: error: ‘PLArenaPool’ was not declared in this scope
/opt/local/include/nss/secport.h:106: error: ‘arena’ was not declared in this scope
/opt/local/include/nss/secport.h:106: error: expected primary-expression before ‘size’
/opt/local/include/nss/secport.h:106: error: initializer expression list treated as compound expression
/opt/local/include/nss/secport.h:107: warning: ‘PORT_ArenaGrow’ initialized and declared ‘extern’
/opt/local/include/nss/secport.h:107: error: ‘PLArenaPool’ was not declared in this scope
/opt/local/include/nss/secport.h:107: error: ‘arena’ was not declared in this scope
/opt/local/include/nss/secport.h:107: error: expected primary-expression before ‘void’
/opt/local/include/nss/secport.h:108: error: expected primary-expression before ‘oldsize’
/opt/local/include/nss/secport.h:108: error: expected primary-expression before ‘newsize’
/opt/local/include/nss/secport.h:108: error: initializer expression list treated as compound expression
/opt/local/include/nss/secport.h:109: warning: ‘PORT_ArenaMark’ initialized and declared ‘extern’
/opt/local/include/nss/secport.h:109: error: ‘PLArenaPool’ was not declared in this scope
/opt/local/include/nss/secport.h:109: error: ‘arena’ was not declared in this scope
/opt/local/include/nss/secport.h:110: warning: ‘PORT_ArenaRelease’ initialized and declared ‘extern’
/opt/local/include/nss/secport.h:110: error: variable or field ‘PORT_ArenaRelease’ declared void
/opt/local/include/nss/secport.h:110: error: ‘PLArenaPool’ was not declared in this scope
/opt/local/include/nss/secport.h:110: error: ‘arena’ was not declared in this scope
/opt/local/include/nss/secport.h:110: error: expected primary-expression before ‘void’
/opt/local/include/nss/secport.h:111: warning: ‘PORT_ArenaZRelease’ initialized and declared ‘extern’
/opt/local/include/nss/secport.h:111: error: variable or field ‘PORT_ArenaZRelease’ declared void
/opt/local/include/nss/secport.h:111: error: ‘PLArenaPool’ was not declared in this scope
/opt/local/include/nss/secport.h:111: error: ‘arena’ was not declared in this scope
/opt/local/include/nss/secport.h:111: error: expected primary-expression before ‘void’
/opt/local/include/nss/secport.h:112: warning: ‘PORT_ArenaUnmark’ initialized and declared ‘extern’
/opt/local/include/nss/secport.h:112: error: variable or field ‘PORT_ArenaUnmark’ declared void
/opt/local/include/nss/secport.h:112: error: ‘PLArenaPool’ was not declared in this scope
/opt/local/include/nss/secport.h:112: error: ‘arena’ was not declared in this scope
/opt/local/include/nss/secport.h:112: error: expected primary-expression before ‘void’
/opt/local/include/nss/secport.h:113: warning: ‘PORT_ArenaStrdup’ initialized and declared ‘extern’
/opt/local/include/nss/secport.h:113: error: ‘PLArenaPool’ was not declared in this scope
/opt/local/include/nss/secport.h:113: error: ‘arena’ was not declared in this scope
/opt/local/include/nss/secport.h:113: error: expected primary-expression before ‘const’
/opt/local/include/nss/secport.h:113: error: initializer expression list treated as compound expression
/opt/local/include/nss/secport.h:202: error: ISO C++ forbids declaration of ‘PRBool’ with no type
/opt/local/include/nss/secport.h:202: error: typedef ‘PRBool’ is initialized (use __typeof__ instead)
/opt/local/include/nss/secport.h:202: error: ‘PR_CALLBACK’ was not declared in this scope
/opt/local/include/nss/secport.h:202: error: ‘PORTCharConversionWSwapFunc’ was not declared in this scope
/opt/local/include/nss/secport.h:207: error: ISO C++ forbids declaration of ‘PRBool’ with no type
/opt/local/include/nss/secport.h:207: error: typedef ‘PRBool’ is initialized (use __typeof__ instead)
/opt/local/include/nss/secport.h:207: error: ‘PR_CALLBACK’ was not declared in this scope
/opt/local/include/nss/secport.h:207: error: ‘PORTCharConversionFunc’ was not declared in this scope
/opt/local/include/nss/secport.h:214: error: variable or field ‘PORT_SetUCS4_UTF8ConversionFunction’ declared void
/opt/local/include/nss/secport.h:214: error: ‘PORTCharConversionFunc’ was not declared in this scope
/opt/local/include/nss/secport.h:215: error: variable or field ‘PORT_SetUCS2_ASCIIConversionFunction’ declared void
/opt/local/include/nss/secport.h:215: error: ‘PORTCharConversionWSwapFunc’ was not declared in this scope
/opt/local/include/nss/secport.h:216: error: ‘PRBool’ does not name a type
/opt/local/include/nss/secport.h:219: error: ‘PRBool’ does not name a type
/opt/local/include/nss/secport.h:223: error: variable or field ‘PORT_SetUCS2_UTF8ConversionFunction’ declared void
/opt/local/include/nss/secport.h:223: error: ‘PORTCharConversionFunc’ was not declared in this scope
/opt/local/include/nss/secport.h:224: error: ‘PRBool’ does not name a type
/opt/local/include/nss/secport.h:229: error: ‘PRBool’ does not name a type
/opt/local/include/nss/secport.h:233: error: ‘PRBool’ does not name a type
/opt/local/include/nss/secport.h:242: error: ‘PRBool’ does not name a type
/opt/local/include/nss/secport.h:252: error: ‘PRBool’ does not name a type
/opt/local/include/nss/secport.h:295: error: expected constructor, destructor, or type conversion before ‘*’ token
In file included from /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_zmq/zmq/work/libzmq-4.3.4/src/ctx.cpp:56:
/opt/local/include/nss/nss.h:97: error: ‘PRBool’ does not name a type
/opt/local/include/nss/nss.h:120: error: ‘PRBool’ does not name a type
/opt/local/include/nss/nss.h:138: error: ‘PRBool’ does not name a type
/opt/local/include/nss/nss.h:231: error: ‘PRUint32’ has not been declared
/opt/local/include/nss/nss.h:235: error: ‘PRUint32’ has not been declared
/opt/local/include/nss/nss.h:253: error: ‘PRUint32’ has not been declared
/opt/local/include/nss/nss.h:308: error: ‘PRInt32’ was not declared in this scope
/opt/local/include/nss/nss.h:308: error: ‘PRInt32’ was not declared in this scope
/opt/local/include/nss/nss.h:308: error: initializer expression list treated as compound expression
/opt/local/include/nss/nss.h:309: error: ‘PRInt32’ was not declared in this scope
/opt/local/include/nss/nss.h:309: error: ‘PRInt32’ was not declared in this scope
/opt/local/include/nss/nss.h:309: error: ‘value’ was not declared in this scope
/opt/local/include/nss/nss.h:309: error: initializer expression list treated as compound expression

Some of these will be fixed via adding #define __STDC_FORMAT_MACROS 1, but that does not solve the problem.

Change History (4)

comment:1 Changed 22 months ago by barracuda156

Description: modified (diff)

comment:2 Changed 21 months ago by ryandesign (Ryan Carsten Schmidt)

Cc: michaelld added
Owner: set to stromnov
Port: zmq added; nss removed
Status: newassigned
Summary: nss headers are brokenzmq +nss: fatal error: prlink.h: No such file or directory

This seems like a defect in the +nss variant you recently added to the zmq port. The portfile manually adds -I${prefix}/include/nss but fails to add -I${prefix}/include/nspr (that's where prtypes.h is). pkg-config nss --cflags knows about both paths.

After fixing that, the build of zmq +nss still fails at link time when it can't find libssl3.dylib, because as with the headers it's not looking in the right directory. pkg-config nss --libs shows the correct flags to use for linking.

The build system should be handling this all for us, so I suspect it's something the developers of zmq should fix in their cmake files. I've filed a bug report with them.

comment:3 Changed 21 months ago by ryandesign (Ryan Carsten Schmidt)

Cc: ryandesign added

comment:4 Changed 21 months ago by ryandesign (Ryan Carsten Schmidt)

Resolution: fixed
Status: assignedclosed

In 34fd845ab2a71210d947419d2c0b5958b862af18/macports-ports (master):

zmq: Fix build failure with +nss variant

Closes: #66809

Note: See TracTickets for help on using tickets.