Status: New
Owner: [email protected]
Labels: Type-Defect Priority-Medium

New issue 530 by [email protected]: On protobuf 2.4.1, make check fails on AIX because symbols are not found
http://code.google.com/p/protobuf/issues/detail?id=530

What steps will reproduce the problem?
1. After compiling, protobuf; run make check
2.
3.

What is the expected output? What do you see instead?
The following error message is displayed when compiling :
/usr/bin/ksh ./libtool --tag=CXX --mode=compile /usr/vacpp/bin/xlC_r -DHAVE_CONFIG_H -I. -I./build-aux -I. -I./include -qnamemangling=v5 -qrtti -I/opt/freeware/src/packages/BUILD/protobuf-2.4.1/include -I/opt/freeware/include -I/usr/include -I/opt/freeware/src/packages/BUILD/protobuf-2.4.1/include -I/opt/freeware/include -I/usr/include -c -o src/gtest.lo src/gtest.cc libtool: compile: /usr/vacpp/bin/xlC_r -DHAVE_CONFIG_H -I. -I./build-aux -I. -I./include -qnamemangling=v5 -qrtti -I/opt/freeware/src/packages/BUILD/protobuf-2.4.1/include -I/opt/freeware/include -I/usr/include -I/opt/freeware/src/packages/BUILD/protobuf-2.4.1/include -I/opt/freeware/include -I/usr/include -c -M src/gtest.cc -DPIC -o src/.libs/gtest.o "src/gtest.cc", line 4106.7: 1540-2947 (I) The function "Int32 Int32FromEnvOrDie(const char * const, Int32)" has a previous declaration with different top-level cv-qualifiers, which may cause link errors when used in another compilation unit under the option "-qnamemangling=v5". "./src/gtest-internal-inl.h", line 234.7: 1540-0424 (I) "Int32 Int32FromEnvOrDie(const char *, Int32)" is declared on line 234 of "./src/gtest-internal-inl.h". "./include/gtest/internal/gtest-port.h", line 884.36: 1540-0274 (S) The name lookup for "isatty" did not find a declaration. "/usr/include/unistd.h", line 170.12: 1540-1298 (I) "extern "C" int isatty(int)" needs to be declared in the containing scope to be found by name lookup. "./include/gtest/internal/gtest-port.h", line 890.44: 1540-0274 (S) The name lookup for "rmdir" did not find a declaration. "/usr/include/unistd.h", line 183.12: 1540-1298 (I) "extern "C" int rmdir(const char *)" needs to be declared in the containing scope to be found by name lookup. "./include/gtest/internal/gtest-port.h", line 912.44: 1540-0274 (S) The name lookup for "chdir" did not find a declaration. "/usr/include/unistd.h", line 143.12: 1540-1298 (I) "extern "C" int chdir(const char *)" needs to be declared in the containing scope to be found by name lookup. "./include/gtest/internal/gtest-port.h", line 926.27: 1540-0274 (S) The name lookup for "read" did not find a declaration. "/usr/include/unistd.h", line 182.16: 1540-1298 (I) "extern "C" ssize_t read(int, void *, size_t)" needs to be declared in the containing scope to be found by name lookup. "./include/gtest/internal/gtest-port.h", line 929.27: 1540-0274 (S) The name lookup for "write" did not find a declaration. "/usr/include/unistd.h", line 194.16: 1540-1298 (I) "extern "C" ssize_t write(int, const void *, size_t)" needs to be declared in the containing scope to be found by name lookup. "./include/gtest/internal/gtest-port.h", line 931.35: 1540-0274 (S) The name lookup for "close" did not find a declaration. "/usr/include/unistd.h", line 145.12: 1540-1298 (I) "extern "C" int close(int)" needs to be declared in the containing scope to be found by name lookup.
gmake[3]: *** [src/gtest.lo] Error 1
gmake[3]: Leaving directory `/opt/freeware/src/packages/BUILD/protobuf-2.4.1/gtest'
gmake[2]: *** [check-local] Error 2
gmake[2]: Leaving directory `/opt/freeware/src/packages/BUILD/protobuf-2.4.1'
gmake[1]: *** [check-am] Error 2
gmake[1]: Leaving directory `/opt/freeware/src/packages/BUILD/protobuf-2.4.1'


What version of the product are you using? On what operating system?
protobuf 2.4.1 on AIX 6.1

Please provide any additional information below.
The error is corrected by adding:
#include <unistd.h>
in ./gtest/include/gtest/internal/gtest-port.h

The following patch resolves the problem:
Index: protobuf-2.4.1/gtest/include/gtest/internal/gtest-port.h
===================================================================
--- protobuf-2.4.1.orig/gtest/include/gtest/internal/gtest-port.h 2013-05-02 09:44:58.00000
0000 +0200
+++ protobuf-2.4.1/gtest/include/gtest/internal/gtest-port.h 2013-05-02 09:45:54.000000000 +02
00
@@ -161,6 +161,9 @@
 #include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
+#ifdef _AIX
+#include <unistd.h>
+#endif
 #ifndef _WIN32_WCE
 #include <sys/stat.h>
 #endif  // !_WIN32_WCE



--
You received this message because this project is configured to send all issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings

--
You received this message because you are subscribed to the Google Groups "Protocol 
Buffers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/protobuf.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to