| Summary: | kdelibs: cmake fails to detect crypt, alloca and dlerror | ||
|---|---|---|---|
| Product: | TDE | Reporter: | Laurent Dard <f.couperin> |
| Component: | tdelibs | Assignee: | Timothy Pearson <kb9vqf> |
| Status: | RESOLVED FIXED | ||
| Severity: | normal | CC: | bugwatch, michele.calgaro, slavek.banko |
| Priority: | P5 | ||
| Version: | 3.5.13 [Trinity] | ||
| Hardware: | All | ||
| OS: | Linux | ||
| Compiler Version: | TDE Version String: | ||
| Application Version: | Application Name: | ||
| Bug Depends on: | |||
| Bug Blocks: | 2468 | ||
| Attachments: | Fix dlerror and crypt detection | ||
|
Description
Laurent Dard
2011-11-19 22:06:34 CST
I noticed that autoconf (in 3.5.10) was detecting things that cmake doesn't find now (in 3.5.13). In the output of ./configure, in the kdelibs-3.5.10 tree, all those functions are detected by autoconf: checking for dlerror... yes ... checking for working alloca.h... yes checking for alloca... yes ... checking for crypt in -lcrypt... yes Bad test here:
kdelibs-trinity-3.5.13/CMakeLists.txt:303:check_function_exists( crypt HAVE_CRYPT )
It doesn't work, like in kdebase, and as far as I can see, it seems useless:
* crypt is redefined in several files, as in:
kdelibs-trinity-3.5.13/kio/kssl/kopenssl.h:37:#define crypt _openssl_crypt
kdelibs-trinity-3.5.13/kio/kssl/kopenssl.h:50:#undef crypt
* crypt isn't invoked, as far as I can tell.
* HAVE_CRYPT is not used either.
alloca is used here, at least:
kdelibs-trinity-3.5.13/kdeprint/fooparser.cpp:216:#ifdef alloca
kdelibs-trinity-3.5.13/khtml/css/parser.cpp:332:# define YYSTACK_ALLOC alloca
kdelibs-trinity-3.5.13/kjs/grammar.cpp:359:# define YYSTACK_ALLOC alloca
kdelibs-trinity-3.5.13/kio/kio/yacc.c:173:# define YYSTACK_ALLOC alloca
Bad test here:
kdelibs-trinity-3.5.13/CMakeLists.txt:305:check_function_exists( alloca HAVE_ALLOCA )
HAVE_ALLOCA isn't used in the code.
dlerror is used here, with HAVE_DLERROR:
kdelibs-trinity-3.5.13/libltdl/ltdl.c:580:#if HAVE_DLERROR
kdelibs-trinity-3.5.13/libltdl/ltdl.c:581:# define DLERROR(arg) dlerror ()
Bad test here:
kdelibs-trinity-3.5.13/CMakeLists.txt:302:check_function_exists( dlerror HAVE_DLERROR )
As per current sources, alloca is now found. dlerror and crypt are still not found. -- Looking for dlerror -- Looking for dlerror - not found -- Looking for crypt -- Looking for crypt - not found Created attachment 2516 [details]
Fix dlerror and crypt detection
Attached patch corrects detection. But in case crypt, really I do not know if detection has any sense. I think HAVE_CRYPT is not used anywhere in tdelibs.
Pushed to GIT in hash 49256118 (master) and 38ed45d3 (r14.0.x). |