|
libmongoc is not tested on AIX, so I prefer not making the changes ourselves unless we have AIX to test. I am open to reviewing a PR if a user can verify the solution.
|
|
kevin.albertson@mongodb.com: I just came across this issue for the first time while revisiting PHPC-1706. For that issue, we added logic to CheckResolv.m4 to avoid linking libresolv on AIX platforms.
This seems to be supported by the AIX documentation for res_search, which says the function is provided by "Standard C Library (libc.a)".
I'm not sure if libmongoc is tested on AIX (PHPC doesn't have it in CI) but you might want to revisit this issue if it's still outstanding.
|
|
Let me know if you need more help resolving this issue, I'm happy to resume investigating.
|
|
Let me ask again, please:
- Where is resolv.h on your system?
- Where is libresolv.so on your system?
In order to build the driver, cmake needs to find both of these files, or neither of these files.
I seems to me that cmake is finding resolv.h, and the compiler also finds resolv.h, but the linker does not find libresolv.
|
|
Hi Davis,
We use a specfile (.spec ) to make mongo-c-driver. There is not resolv.h in
our includes paths. Indeed, it is cmake files that were configured to use
libresolv, as:
- cmake/FindResSearch.cmake(15): check_symbol_exists(res_nsearch resolv.h
MONGOC_HAVE_RES_NSEARCH )
-cmake/Modules/CheckSymbolExists.cmake(50):
__CHECK_SYMBOL_EXISTS_IMPL(${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckSymbolExists.c
res_nsearch resolv.h MONGOC_HAVE_RES_NSEARCH ).
Regards,
Sena
:0
n
Le mar. 28 août 2018 à 22:12, A. Jesse Jiryu Davis (JIRA) <jira@mongodb.org>
–
Séna Apeke
-Doctorant en Bio-mathématique au Laboratoire de traitement
de l'information médicale (LaTIM INSERM 1101) ;
-Ingénieur en modélisation des systèmes, traitement de signal et d'image.
"La parfaite valeur est de faire sans témoins ce qu'on
- serait capable de faire devant tout le monde." *
(La Rochefoucauld)
|
|
Looks like you have resolv.h in your include path, but no libresolv in your library path? Is there a libresolv.so anywhere on your system? If not, why is there a resolv.h?
|
|
Hi Davis,
Here is the whole CMake output, sorry to do not answered you fast, I was in
holidays.
Thank you,
Regards,
Sena
- vi mongo-c-driver-1.11.0-1.spec-RES1:
...........................
collect2: fatal error: library libresolv not found
compilation terminated.
src/libmongoc/CMakeFiles/mongoc_shared.dir/build.make:1218: recipe for
target 'src/libmongoc/libmongoc-1.0.so' failed
gmake[2]: *** [src/libmongoc/libmongoc-1.0.so] Error 1
gmake[2]: Leaving directory
'/opt/freeware/src/packages/BUILD/mongo-c-driver-1.11.0/64bit'
CMakeFiles/Makefile2:667: recipe for target
'src/libmongoc/CMakeFiles/mongoc_shared.dir/all' failed
gmake[1]: *** [src/libmongoc/CMakeFiles/mongoc_shared.dir/all] Error 2
gmake[1]: Leaving directory
'/opt/freeware/src/packages/BUILD/mongo-c-driver-1.11.0/64bit'
Makefile:154: recipe for target 'all' failed
gmake: *** [all] Error 2
Le lun. 13 août 2018 à 14:56, A. Jesse Jiryu Davis (JIRA) <jira@mongodb.org>
–
Séna Apeke
-Doctorant en Bio-mathématique au Laboratoire de traitement
de l'information médicale (LaTIM INSERM 1101) ;
-Ingénieur en modélisation des systèmes, traitement de signal et d'image.
"La parfaite valeur est de faire sans témoins ce qu'on
- serait capable de faire devant tout le monde." *
(La Rochefoucauld)
–
Séna Apeke
-Doctorant en Bio-mathématique au Laboratoire de traitement
de l'information médicale (LaTIM INSERM 1101) ;
-Ingénieur en modélisation des systèmes, traitement de signal et d'image.
"La parfaite valeur est de faire sans témoins ce qu'on
- serait capable de faire devant tout le monde." *
(La Rochefoucauld)
|
|
Hi Davis,
Here is the whole CMake output, sorry to do not answered you fast, I was in
holidays.
Thank you,
Regards,
Sena
- vi mongo-c-driver-1.11.0-1.spec-RES1:
...........................
collect2: fatal error: library libresolv not found
compilation terminated.
src/libmongoc/CMakeFiles/mongoc_shared.dir/build.make:1218: recipe for
target 'src/libmongoc/libmongoc-1.0.so' failed
gmake[2]: *** [src/libmongoc/libmongoc-1.0.so] Error 1
gmake[2]: Leaving directory
'/opt/freeware/src/packages/BUILD/mongo-c-driver-1.11.0/64bit'
CMakeFiles/Makefile2:667: recipe for target
'src/libmongoc/CMakeFiles/mongoc_shared.dir/all' failed
gmake[1]: *** [src/libmongoc/CMakeFiles/mongoc_shared.dir/all] Error 2
gmake[1]: Leaving directory
'/opt/freeware/src/packages/BUILD/mongo-c-driver-1.11.0/64bit'
Makefile:154: recipe for target 'all' failed
gmake: *** [all] Error 2
Le lun. 13 août 2018 à 14:56, A. Jesse Jiryu Davis (JIRA) <jira@mongodb.org>
–
Séna Apeke
-Doctorant en Bio-mathématique au Laboratoire de traitement
de l'information médicale (LaTIM INSERM 1101) ;
-Ingénieur en modélisation des systèmes, traitement de signal et d'image.
"La parfaite valeur est de faire sans témoins ce qu'on
- serait capable de faire devant tout le monde." *
(La Rochefoucauld)
|
|
Thanks, can we please see the whole CMake output? Please delete CMakeCache.txt and CMakeFiles and run it again, we need to see everything starting from "The C compiler identification is" and ending with "Build files have been written to". That information will help diagnose why the CMake configuration doesn't work correctly on AIX.
Thank you!
|
|
Hi Jesse,
As I explained it, we make mongo-c-driver-1.11 on AIX os with the following
options of cmake :
cmake . --trace --debug-trycompile --debug-output -G"Unix Makefiles" \
-DENABLE_BSON:STRING=ON \
-DENABLE_MONGOC:BOOL=ON \
-DENABLE_SHM_COUNTERS:BOOL=ON \
-DENABLE_SSL:STRING=OPENSSL \
-DENABLE_SASL:STRING=OFF \
-DENABLE_ICU:STRING=OFF \
-DENABLE_AUTOMATIC_INIT_AND_CLEANUP:BOOL=OFF \
-DENABLE_CRYPTO_SYSTEM_PROFILE:BOOL=ON \
-DENABLE_MAN_PAGES:BOOL=ON \
-DENABLE_TESTS:BOOL=ON \
-DWITH_Sphinx=no \
-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \
-DCMAKE_C_COMPILER="${CC}" \
-DCMAKE_C_FLAGS="$CFLAGS64" \
-DCMAKE_CXX_COMPILER="${CXX}" \
-DCMAKE_CXX_FLAGS="$CXXFLAGS64" \
-DCMAKE_EXE_LINKER_FLAGS="${LDFLAGS} " \
-DCMAKE_MODULE_LINKER_FLAGS="${LDFLAGS}" \
-DCMAKE_SHARED_LINKER_FLAGS="${LDFLAGS}" \
-DCMAKE_LINK_LIBRARY_FLAG="$CFLAGS" \
-DCMAKE_SHARED_LIBRARY_LINK="$LDFLAGS" \
-DCMAKE_AR=$AR \
-DENABLE_EXAMPLES:BOOL=OFF \
-DCMAKE_INSTALL_PREFIX=%{_prefix} \
-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=%{_libdir64} \
-DBUILD_SHARED_LIBS=ON \
-DBUILD_STATIC_LIBS=OFF
We had obtained the following issue:
[ 42%] Linking C shared library libmongoc-1.0.so
cd
/opt/freeware/src/packages/BUILD/mongo-c-driver-1.11.0/64bit/src/libmongoc
&& /opt/freeware/bin/cmake -E cmake_link_script
CMakeFiles/mongoc_shared.dir/link.txt --verbose=1
/usr/bin/gcc -fPIC -L/opt/freeware/lib64 -L/opt/freeware/lib
-Wl,-blibpath:/opt/freeware/lib64:/opt/freeware/lib:/usr/lib:/lib -lintl
-shared -Wl,-G,-bnoipath -o libmongoc-1.0.so
CMakeFiles/mongoc_shared.dir/src/mongoc/mongoc-apm.c.o
CMakeFiles/mongoc_shared.dir/src/mongoc/mongoc-array.c.o
CMakeFiles/mongoc_shared.dir/src/mongoc/mongoc-async.c.o
CMakeFiles/mongoc_shared.dir/src/mongoc/mongoc-async-cmd.c.o
CMakeFiles/mongoc_shared.dir/src/mongoc/mongoc-buffer.c.o
CMakeFiles/mongoc_shared.dir/src/mongoc/mongoc-bulk-operation.c.o
CMakeFiles/mongoc_shared.dir/src/mongoc/mongoc-change-stream.c.o
CMakeFiles/mong
oc_shared.dir/src/mongoc/mongoc-client.c.o
CMakeFiles/mongoc_shared.dir/src/mongoc/mongoc-client-pool.c.o
CMakeFiles/mongoc_shared.dir/src/mongoc/mongoc-cluster.c.o
CMakeFiles/mongoc_shared.dir/src/mongoc/ mongoc-cluster-sasl.c.o
CMakeFiles/mongoc_shared.dir/src/mongoc/mongoc-collection.c.o
CMakeFiles/mongoc_shared.dir/src/mongoc/mongoc-compression.c.o
CMakeFiles/mongoc_shared.dir/src/mongoc/mongoc-counters.c.o
CMakeFiles/mongoc_shared.dir/src/mongoc/mongoc-cursor-array.c.o
CMakeFiles/mongoc_shared.dir/src/mongoc/mongoc-cursor.c.o
CMakeFiles/mongoc_shared.dir/src/mongoc/mongoc-cursor-cmd.c.o
CMakeFiles/mongoc
_shared.dir/src/mongoc/mongoc-cursor-cmd-deprecated.c.o
CMakeFiles/mongoc_shared.dir/src/mongoc/mongoc-cursor-find.c.o
CMakeFiles/mongoc_shared.dir/src/mongoc/mongoc-cursor-find-cmd.c.o
CMakeFiles/mongoc_s
hared.dir/src/mongoc/mongoc-cursor-find-opquery.c.o
CMakeFiles/mongoc_shared.dir/src/mongoc/mongoc-cursor-legacy.c.o
CMakeFiles/mongoc_shared.dir/src/mongoc/mongoc-database.c.o
CMakeFiles/mongoc_shared.dir
/src/mongoc/mongoc-error.c.o
CMakeFiles/mongoc_shared.dir/src/mongoc/mongoc-find-and-modify.c.o
CMakeFiles/mongoc_shared.dir/src/mongoc/mongoc-init.c.o
CMakeFiles/mongoc_shared.dir/src/mongoc/mongoc-gridfs.c.o
CMakeFiles/mongoc_shared.dir/src/mongoc/mongoc-gridfs-file.c.o
CMakeFiles/mongoc_shared.dir/src/mongoc/mongoc-gridfs-file-list.c.o
CMakeFiles/mongoc_shared.dir/src/mongoc/mongoc-gridfs-file-page.c.o C
MakeFiles/mongoc_shared.dir/src/mongoc/mongoc-handshake.c.o
CMakeFiles/mongoc_shared.dir/src/mongoc/mongoc-host-list.c.o
CMakeFiles/mongoc_shared.dir/src/mongoc/mongoc-index.c.o
CMakeFiles/mongoc_shared.dir/src/mongoc/mongoc-list.c.o
CMakeFiles/mongoc_shared.dir/src/mongoc/mongoc-linux-distro-scanner.c.o
CMakeFiles/mongoc_shared.dir/src/mongoc/mongoc-log.c.o
CMakeFiles/mongoc_shared.dir/src/mongoc/mongoc-ma
tcher.c.o CMakeFiles/mongoc_shared.dir/src/mongoc/mongoc-matcher-op.c.o
CMakeFiles/mongoc_shared.dir/src/mongoc/mongoc-memcmp.c.o
CMakeFiles/mongoc_shared.dir/src/mongoc/mongoc-cmd.c.o
CMakeFiles/mongoc_shared.dir/src/mongoc/mongoc-opts.c.o
CMakeFiles/mongoc_shared.dir/src/mongoc/mongoc-opts-helpers.c.o
CMakeFiles/mongoc_shared.dir/src/mongoc/mongoc-queue.c.o
CMakeFiles/mongoc_shared.dir/src/mongoc/mongoc-read-concern.c.o
CMakeFiles/mongoc_shared.dir/src/mongoc/mongoc-read-prefs.c.o
CMakeFiles/mongoc_shared.dir/src/mongoc/mongoc-rpc.c.o
CMakeFiles/mongoc_shared.dir/src/mongoc/mongoc-server-description.c.o
CMakeFiles/mongoc_shared.dir/src/mongoc/mongoc-server-stream.c.o
CMakeFiles/mongoc_shared.dir/src/mongoc/mongoc-client-session.c.o
CMakeFiles/mongoc_shared.dir/src/mongoc/mongoc-set.c.o
CMakeFiles/mongoc_shared.dir/src/mongoc/mongoc-socket.c.o
CMakeFiles/mongoc_shared.dir/src/mongoc/mongoc-stream-buffered.c.o
CMakeFiles/mongoc_shared.dir/src/mongoc/mongoc-stream.c.o
CMakeFiles/mongoc_shared.dir/src/mongoc/mongoc-stream-file.c.o
CMakeFiles/mongoc_shared.dir/src/mongoc/mongoc-stream-gridfs.c.o
CMakeFiles/mongoc_shared.dir/src/mongoc/mongoc-stream-socket.c.o
CMakeFiles/mongoc_shared.dir/src/mongoc/mongoc-topology.c.o
CMakeFiles/mongoc_shared.dir/src/mongoc/mongoc-topology-description.c.o
CMakeFiles/mongoc_shared.dir/src/mongoc/mongoc-topology-description-apm.c.o
CMakeFiles/mongoc_shared.dir/src/mongoc/mongoc-topology-scanner.c.o
CMakeFiles/mongoc_shared.dir/src/mongoc/mongoc-uri.c.o
CMakeFiles/mongoc_shared.dir/src/mongoc/mongoc-util.c.o
CMakeFiles/mongoc_shared.dir/src/mongoc/mongoc-version-functions.c.o
CMakeFiles/mongoc_shared.dir/src/mongoc/mongoc-write-command.c.o
CMakeFiles/mongoc_shared.dir/src/mongoc/mongoc-write-command-legacy.c.o
CMakeFiles/mongoc_shared.dir/src/mongoc/mongoc-write-concern.c.o
CMakeFiles/mongoc_shared.dir/__/common/common-b64.c.o
CMakeFiles/mongoc_shared.dir/src/mongoc/mongoc-crypto.c.o
CMakeFiles/mongoc_shared.dir/src/mongoc/mongoc-scram.c.o
CMakeFiles/mongoc_shared.dir/src/mongoc/mongoc-stream-tls.c.o
CMakeFiles/mongoc_shared.dir/src/mongoc/mongoc-ssl.c.o
CMakeFiles/mongoc_shared.dir/src/mongoc/mongoc-crypto-openssl.c.o
CMakeFiles/mongoc_shared.dir/src/mongoc/mongoc-rand-openssl.c.o
CMakeFiles/mongoc_shared.dir/src/mongoc/mongoc-stream-tls-openssl.c.o
CMakeFiles/mongoc_shared.dir/src/mongoc/mongoc-stream-tls-openssl-bio.c.o
CMakeFiles/mongoc_shared.dir/src/mongoc/mongoc-openssl.c.o
-Wl,-blibpath:/usr/local/lib:/opt/freeware/src/packages/BUILD/mongo-c-driver-1.11.0/64bit/src/libbson:/opt/freeware/lib64:/opt/freeware/lib:/opt/freeware/lib/gcc/powerpc-ibm-aix7.1.0.0/8.1.0:/usr/lib:/lib
/opt/freeware/lib/libssl.a /opt/freeware/lib/libcrypto.a -lrt -lresolv
/usr/local/lib/libsnappy.a /usr/lib/libz.so ../libbson/libbson-1.0.so
-pthread /usr/lib/librt.a /usr/lib/libm.a
collect2: fatal error: library libresolv not found
compilation terminated.
src/libmongoc/CMakeFiles/mongoc_shared.dir/build.make:1218: recipe for
target 'src/libmongoc/libmongoc-1.0.so' failed
gmake[2]: *** [src/libmongoc/libmongoc-1.0.so] Error 1
gmake[2]: Leaving directory
'/opt/freeware/src/packages/BUILD/mongo-c-driver-1.11.0/64bit'
CMakeFiles/Makefile2:667: recipe for target
'src/libmongoc/CMakeFiles/mongoc_shared.dir/all' failed
gmake[1]: *** [src/libmongoc/CMakeFiles/mongoc_shared.dir/all] Error 2
gmake[1]: Leaving directory
'/opt/freeware/src/packages/BUILD/mongo-c-driver-1.11.0/64bit'
Makefile:154: recipe for target 'all' failed
gmake: *** [all] Error 2
To solve it, we added instructions concerning AIX in the file
cmake/FindResSearch.cmake. You will find our patch as attachment.
Regards,
Séna
–
Séna Apeke
-Doctorant en Bio-mathématique au Laboratoire de traitement
de l'information médicale (LaTIM INSERM 1101) ;
-Ingénieur en modélisation des systèmes, traitement de signal et d'image.
"La parfaite valeur est de faire sans témoins ce qu'on
- serait capable de faire devant tout le monde." *
(La Rochefoucauld)
|
|
Specifically, if you paste your build command and its error output here we can help diagnose the issue.
|
|
You can submit a pull request at https://github.com/mongodb/mongo-c-driver
Can you tell me more about what the problem is with libresolv? The C Driver's CMake build scripts are designed to use libresolv if it is available, but the driver can still be built successfully even if libresolv is absent.
|
Generated at Wed Feb 07 21:16:21 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.