Skip to content
This repository has been archived by the owner on Apr 22, 2023. It is now read-only.

Error compiling v0.6.0 with with gcc 4.2.1 (OSX) and OpenSSL 1.0.0e #2032

Closed
pixeldrew opened this issue Nov 6, 2011 · 4 comments
Closed

Comments

@pixeldrew
Copy link

Hi,

I'm have a build error on OSX.

$ ./configure --openssl-includes=/opt/local/include/openssl/

This is the build error:

[33/35] cxx: src/platform_darwin.cc -> out/Release/src/platform_darwin_5.o
/usr/bin/g++ -pthread -arch x86_64 -g -O3 -DHAVE_OPENSSL=1 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_FDATASYNC=0 -DARCH="x64" -DPLATFORM="darwin" -D__POSIX__=1 -Wno-unused-parameter -D_FORTIFY_SOURCE=2 -IRelease/src -I../src -IRelease/deps/http_parser -I../deps/http_parser -IRelease/deps/uv/include -I../deps/uv/include -IRelease/deps/uv/src/ares -I../deps/uv/src/ares -IRelease/deps/v8/include -I../deps/v8/include -I/opt/local/include/openssl/ -Ideps/v8/include ../src/platform_darwin.cc -c -o Release/src/platform_darwin_5.o
In file included from ../src/platform_darwin_proctitle.cc:36,
from ../src/platform_darwin.cc:59:
/opt/local/include/openssl/err.h:150: error: ‘CRYPTO_THREADID’ does not name a type
/opt/local/include/openssl/err.h:355: error: expected ‘,’ or ‘...’ before ‘’ token
/opt/local/include/openssl/err.h:355: error: ISO C++ forbids declaration of ‘CRYPTO_THREADID’ with no type
/opt/local/include/openssl/err.h:362: error: expected constructor, destructor, or type conversion before ‘
’ token
/opt/local/include/openssl/err.h:363: error: expected constructor, destructor, or type conversion before ‘’ token
/opt/local/include/openssl/err.h:364: error: variable or field ‘ERR_release_err_state_table’ declared void
/opt/local/include/openssl/err.h:364: error: expected primary-expression before ‘)’ token
/opt/local/include/openssl/err.h:364: error: ‘LHASH_OF’ was not declared in this scope
/opt/local/include/openssl/err.h:364: error: ‘hash’ was not declared in this scope
In file included from ../src/platform_darwin.cc:59:
../src/platform_darwin_proctitle.cc: In static member function ‘static void node::Platform::SetProcessTitle(char
)’:
../src/platform_darwin_proctitle.cc:75: error: ‘warnx’ was not declared in this scope
../src/platform_darwin_proctitle.cc:87: error: ‘warnx’ was not declared in this scope
../src/platform_darwin_proctitle.cc:100: error: ‘warnx’ was not declared in this scope
../src/platform_darwin_proctitle.cc:112: error: ‘warnx’ was not declared in this scope
../src/platform_darwin_proctitle.cc:141: error: ‘warnx’ was not declared in this scope
Waf: Leaving directory `/Users/drewf/Documents/workspace/xcode/node/out'
Build failed: -> task failed (err #1):
{task: cxx platform_darwin.cc -> platform_darwin_5.o}
make: *** [program] Error 1

$ gcc -v
Using built-in specs.
Target: i686-apple-darwin10
Configured with: /var/tmp/gcc/gcc-5664~38/src/configure --disable-checking --enable-werror --prefix=/usr --mandir=/share/man --enable-languages=c,objc,c++,obj-c++ --program-transform-name=/^[cg][^.-]*$/s/$/-4.2/ --with-slibdir=/usr/lib --build=i686-apple-darwin10 --program-prefix=i686-apple-darwin10- --host=x86_64-apple-darwin10 --target=i686-apple-darwin10 --with-gxx-include-dir=/include/c++/4.2.1
Thread model: posix
gcc version 4.2.1 (Apple Inc. build 5664)

$ /opt/local/bin/openssl version
OpenSSL 1.0.0e 6 Sep 2011

Compilation works fine without OpenSSL Support.

@bnoordhuis
Copy link
Member

Does it work when you run this?

make distclean
./configure --openssl-includes=/opt/local/include
make

@pixeldrew
Copy link
Author

Yep, that did the trick.

--openssl-includes=OPENSSL_INCLUDES
A directory to search for the OpenSSL includes

Perhaps the config help info should be updated to reflect that it needs the root includes directory or there should be a test in the configure to see if the include dir is correct.

@bnoordhuis
Copy link
Member

We do have a check in our wscript file but it gets confused if you feed it a) a bad --openssl-includes path and b) the default include path contains openssl headers - because it does find openssl headers, just not the right ones.

Oh, and in this case the bad path made it include openssl/err.h instead of the system err.h (which apart from the file name are completely unrelated).

@pixeldrew
Copy link
Author

Ah, I see what happened. My mistake, I should of read that build log a little closer.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants