[cmake-developers] cmake on AIX

REIX, Tony tony.reix at atos.net
Tue Jun 19 12:17:34 EDT 2018


Hi Brad,


Thanks for the information!


About MariaDB current issue, the only trace I see dealing with the string breaking cmake is:


/opt/freeware/src/packages/BUILD/mariadb-10.3.1/64bit/libmariadb/cmake/FindGSSAPI.cmake(94):  message(STATUS Found GSSAPI: ${GSSAPI_LIBS} )
-- Found GSSAPI: -L/opt/freeware/lib -blibpath:/opt/freeware/lib::/usr/lib:/lib -I/usr/include -I/opt/freeware/include -L/opt/freeware/lib -blibpath:/opt/freeware/lib:/usr/lib:/lib
-bmaxdata:0x80000000 -brtl -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err -lpthreads


It contains a part of this:

# grep bmaxdata mariadb-10.3.1-1.spec
        export LDFLAGS="-L/opt/freeware/lib -Wl,-blibpath:/opt/freeware/lib:/usr/lib:/lib -Wl,-bmaxdata:0x80000000 -lintl"

And the rest of the string probably comes from KRB5 configuration files:
# rpm -ql krb5-devel-1.9.4-2 | xargs grep lkrb5
/opt/freeware/bin/krb5-config:  lib_flags="$lib_flags -lkrb5 -lk5crypto -lcom_err $GEN_LIB $LIBS $DL_LIB"
/opt/freeware/bin/krb5-config_64:       lib_flags="$lib_flags -lkrb5 -lk5crypto -lcom_err $GEN_LIB $LIBS $DL_LIB"


So, it looks like cmake gets data for the CMAKE_REQUIRED_LIBRARIES from these 2 aboves places, but it does not transform the " " blank separators by ";" ?!!

Any idea where this is done ?


Regards,


Cordialement,

Tony Reix

ATOS / Bull SAS
ATOS Expert
IBM Coop Architect & Technical Leader
Office : +33 (0) 4 76 29 72 67
1 rue de Provence - 38432 Échirolles - France
www.atos.net<https://mail.ad.bull.net/owa/redir.aspx?C=PvphmPvCZkGrAgHVnWGsdMcDKgzl_dEIsM6rX0g4u4v8V81YffzBGkWrtQeAXNovd3ttkJL8JIc.&URL=http%3a%2f%2fwww.atos.net%2f>
________________________________
De : Brad King <brad.king at kitware.com>
Envoyé : mardi 19 juin 2018 17:57:54
À : REIX, Tony; cmake-developers at cmake.org
Cc : APEKE, SENA (ext)
Objet : Re: [cmake-developers] cmake on AIX

On 06/19/2018 11:48 AM, REIX, Tony wrote:
> However, we've found yet no information about how to:
>
>    a) run one test,
>
>    b) get more traces,

ctest -R $regex_matching_tests_to_run -V

>    c) know where are the logs.

See the Testing/* directory.  When not running in dashboard
client mode there isn't much logged though.

> CMake Error at /opt/freeware/src/packages/BUILD/mariadb-10.3.1/64bit/CMakeFiles/CMakeTmp/CMakeLists.txt:14 (add_executable):
>   Target "cmTC_d6385" links to target "-L/opt/freeware/lib
>   -blibpath:/opt/freeware/lib::/usr/lib:/lib -I/usr/include
>   -I/opt/freeware/include -L/opt/freeware/lib
>   -blibpath:/opt/freeware/lib:/usr/lib:/lib -bmaxdata:0x80000000 -brtl
>   -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err -lpthreads" but the target was
>   not found.  Perhaps a find_package() call is missing for an IMPORTED
>   target, or an ALIAS target is missing?
>
> CMake Error at /opt/freeware/share/cmake/Modules/CheckSymbolExists.cmake:87 (try_compile):
>   Failed to generate test project build system.
> Call Stack (most recent call first):
>   /opt/freeware/share/cmake/Modules/CheckCXXSymbolExists.cmake:39 (__CHECK_SYMBOL_EXISTS_IMPL)
>   plugin/auth_gssapi/CMakeLists.txt:24 (CHECK_CXX_SYMBOL_EXISTS)

I suspect mariadb's source is setting CMAKE_REQUIRED_LIBRARIES
to a space-separated value instead of a ;-separated value.

See the code here:

  https://github.com/MariaDB/server/blob/ed0b84a027/plugin/auth_gssapi/CMakeLists.txt#L22-L24

It assumes GSSAPI_LIBS is ;-separated, but the cache entry you
quoted is a command-lien string with spaces.

-Brad
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://cmake.org/pipermail/cmake-developers/attachments/20180619/197406e5/attachment.html>


More information about the cmake-developers mailing list