Ticket #196 (new defect)
Problem determining iconv() input type
| Reported by: | benke | Owned by: | lbponey |
|---|---|---|---|
| Priority: | major | Milestone: | Release 0.3 |
| Component: | museek_general | Version: | 0.2 |
| Keywords: | Cc: |
Description
Just installed libiconv 1.12 but cmake fails to determine iconv() input type:
benke:$ cmake -DPREFIX=/usr/local -DCMAKE_REQUIRED_INCLUDES=/usr/local/include -DNO_PYMUCIPHER=1 -DBINDINGS=0 -DMURMUR=0 -DMUCOUS=0 -DCLIENTS=0 DECLARATIONS: PREFIX (/usr), MANDIR (PREFIX/man) Package options: EVERYTHING, NO_MUSEEKD, NO_MUSCAN, NO_SETUP, NO_MUSEEQ, NO_PYMUCIPHER, BINDINGS, MURMUR, MUCOUS, CLIENTS Museeq options: BINRELOC, DATADIR (PREFIX/share), RELOAD_TRANSLATIONS Prefix these declarations with -D and set them with either 1, 0 or a path. Set -DEVERYTHING=1 if you want it all CMake Error at CMakeLists.txt:199 (message):
Problem with iconv: could not determine iconv() input type.
-- Configuring incomplete, errors occurred!
I have same iconv.h in both /usr/include and /usr/local/include. Let me know if you need more details...
Attachments
Change History
comment:2 Changed 4 years ago by benke
Sure:
benke:$ cat /usr/include/iconv.h | grep "size_t iconv" -A 4 extern size_t iconv (iconv_t cd, char* * inbuf, size_t *inbytesleft, char* * outbuf, size_t *outbytesleft);
/* Frees resources allocated for conversion descriptor `cd'. */ #ifndef LIBICONV_PLUG #define iconv_close libiconv_close
comment:3 Changed 12 months ago by Mariusz Grzybacz <silas@…>
Is there a way to fix it? I have downloaded latest SVN and from source version and I also have the same issue...
# cat /usr/include/iconv.h | grep "size_t iconv" -A 4 extern size_t iconv (iconv_t cd, char* * inbuf, size_t *inbytesleft, char* * outbuf, size_t *outbytesleft); /* Frees resources allocated for conversion descriptor ‘cd’. */ #ifndef LIBICONV_PLUG #define iconv_close libiconv_close
and here is the content of CMakeError.log:
Run Build Command:/usr/bin/make "cmTryCompileExec3924752246/fast"
/usr/bin/make -f CMakeFiles/cmTryCompileExec3924752246.dir/build.make CMakeFiles/cmTryCompileExec3924752246.dir/build
make[1]: Entering directory `/dev.museek/museek/sources/_tmp_workdir/CMakeFiles/CMakeTmp'
/usr/bin/cmake -E cmake_progress_report /dev.museek/museek/sources/_tmp_workdir/CMakeFiles/CMakeTmp/CMakeFiles 1
Building C object CMakeFiles/cmTryCompileExec3924752246.dir/UINT32.c.o
/usr/bin/gcc -L/usr/bin/museek/lib -I/usr/bin/museek/include -I/usr/bin/museek/include/ncursesw -I/usr/bin/museek/include/libxml2 -I/usr/bin/museek/include/libxml2/libxml -I/usr/bin/museek/include/libxml++-2.6 -I/usr/bin/museek/include/libxml++-2.6/libxml++ -I/usr/bin/museek/include/libxml++ -I/usr/bin/museek/include/openssl -I/usr/bin/museek/include/python2.7 -I/usr/bin/museek/include/ogg -I/usr/bin/museek/include/vorbis -I/usr/bin/museek/include/event2 -I/usr/bin/museek/include/giomm-2.4 -I/usr/bin/museek/include/glibmm-2.4 -I/usr/bin/museek/include/event2 -I/usr/bin/museek/include/sigc++-2.0 -I/usr/bin/museek/include/sigc++-2.0 -I/usr/bin/museek/include -o CMakeFiles/cmTryCompileExec3924752246.dir/UINT32.c.o -c /dev.museek/museek/sources/_tmp_workdir/CMakeFiles/CheckTypeSize/UINT32.c
/dev.museek/museek/sources/_tmp_workdir/CMakeFiles/CheckTypeSize/UINT32.c:19: error: ‘uint32’ undeclared here (not in a function)
make[1]: Leaving directory `/dev.museek/museek/sources/_tmp_workdir/CMakeFiles/CMakeTmp'
make[1]: *** [CMakeFiles/cmTryCompileExec3924752246.dir/UINT32.c.o] Error 1
make: *** [cmTryCompileExec3924752246/fast] Error 2
/dev.museek/museek/sources/_tmp_workdir/CMakeFiles/CheckTypeSize/UINT32.c:
#include <sys/types.h>
#include <stdint.h>
#include <stddef.h>
#undef KEY
#if defined(__i386)
# define KEY '_','_','i','3','8','6'
#elif defined(__x86_64)
# define KEY '_','_','x','8','6','_','6','4'
#elif defined(__ppc__)
# define KEY '_','_','p','p','c','_','_'
#elif defined(__ppc64__)
# define KEY '_','_','p','p','c','6','4','_','_'
#endif
#define SIZE (sizeof(uint32))
char info_size[] = {'I', 'N', 'F', 'O', ':', 's','i','z','e','[',
('0' + ((SIZE / 10000)%10)),
('0' + ((SIZE / 1000)%10)),
('0' + ((SIZE / 100)%10)),
('0' + ((SIZE / 10)%10)),
('0' + (SIZE % 10)),
']',
#ifdef KEY
' ','k','e','y','[', KEY, ']',
#endif
'\0'};
#ifdef __CLASSIC_C__
int main(argc, argv) int argc; char *argv[];
#else
int main(int argc, char *argv[])
#endif
{
int require = 0;
require += info_size[argc];
(void)argv;
return require;
}
Performing C++ SOURCE FILE Test ICONV_CONST failed with the following output:
Change Dir: /dev.museek/museek/sources/_tmp_workdir/CMakeFiles/CMakeTmp
Run Build Command:/usr/bin/make "cmTryCompileExec3036922332/fast"
/usr/bin/make -f CMakeFiles/cmTryCompileExec3036922332.dir/build.make CMakeFiles/cmTryCompileExec3036922332.dir/build
make[1]: Entering directory `/dev.museek/museek/sources/_tmp_workdir/CMakeFiles/CMakeTmp'
/usr/bin/cmake -E cmake_progress_report /dev.museek/museek/sources/_tmp_workdir/CMakeFiles/CMakeTmp/CMakeFiles 1
Building CXX object CMakeFiles/cmTryCompileExec3036922332.dir/src.cxx.o
/usr/bin/c++ -L/usr/bin/museek/lib -I/usr/bin/museek/include -I/usr/bin/museek/include/ncursesw -I/usr/bin/museek/include/libxml2 -I/usr/bin/museek/include/libxml2/libxml -I/usr/bin/museek/include/libxml++-2.6 -I/usr/bin/museek/include/libxml++-2.6/libxml++ -I/usr/bin/museek/include/libxml++ -I/usr/bin/museek/include/openssl -I/usr/bin/museek/include/python2.7 -I/usr/bin/museek/include/ogg -I/usr/bin/museek/include/vorbis -I/usr/bin/museek/include/event2 -I/usr/bin/museek/include/giomm-2.4 -I/usr/bin/museek/include/glibmm-2.4 -I/usr/bin/museek/include/event2 -I/usr/bin/museek/include/sigc++-2.0 -I/usr/bin/museek/include/sigc++-2.0 -DICONV_CONST -I/usr/bin/museek/include -o CMakeFiles/cmTryCompileExec3036922332.dir/src.cxx.o -c /dev.museek/museek/sources/_tmp_workdir/CMakeFiles/CMakeTmp/src.cxx
/dev.museek/museek/sources/_tmp_workdir/CMakeFiles/CMakeTmp/src.cxx: In function ‘int main(int, char**)’:
/dev.museek/museek/sources/_tmp_workdir/CMakeFiles/CMakeTmp/src.cxx:4: error: invalid conversion from ‘const char**’ to ‘char**’
/dev.museek/museek/sources/_tmp_workdir/CMakeFiles/CMakeTmp/src.cxx:4: error: initializing argument 2 of ‘size_t libiconv(void*, char**, size_t*, char**, size_t*)’
make[1]: Leaving directory `/dev.museek/museek/sources/_tmp_workdir/CMakeFiles/CMakeTmp'
make[1]: *** [CMakeFiles/cmTryCompileExec3036922332.dir/src.cxx.o] Error 1
make: *** [cmTryCompileExec3036922332/fast] Error 2
Source file was:
#include <iconv.h>
int main(int argc, char ** argv)
{ return iconv(0, (const char **)0, 0, (char**)0, 0); }
Performing C++ SOURCE FILE Test ICONV_NON_CONST failed with the following output:
Change Dir: /dev.museek/museek/sources/_tmp_workdir/CMakeFiles/CMakeTmp
Run Build Command:/usr/bin/make "cmTryCompileExec1377213226/fast"
/usr/bin/make -f CMakeFiles/cmTryCompileExec1377213226.dir/build.make CMakeFiles/cmTryCompileExec1377213226.dir/build
make[1]: Entering directory `/dev.museek/museek/sources/_tmp_workdir/CMakeFiles/CMakeTmp'
/usr/bin/cmake -E cmake_progress_report /dev.museek/museek/sources/_tmp_workdir/CMakeFiles/CMakeTmp/CMakeFiles 1
Building CXX object CMakeFiles/cmTryCompileExec1377213226.dir/src.cxx.o
/usr/bin/c++ -L/usr/bin/museek/lib -I/usr/bin/museek/include -I/usr/bin/museek/include/ncursesw -I/usr/bin/museek/include/libxml2 -I/usr/bin/museek/include/libxml2/libxml -I/usr/bin/museek/include/libxml++-2.6 -I/usr/bin/museek/include/libxml++-2.6/libxml++ -I/usr/bin/museek/include/libxml++ -I/usr/bin/museek/include/openssl -I/usr/bin/museek/include/python2.7 -I/usr/bin/museek/include/ogg -I/usr/bin/museek/include/vorbis -I/usr/bin/museek/include/event2 -I/usr/bin/museek/include/giomm-2.4 -I/usr/bin/museek/include/glibmm-2.4 -I/usr/bin/museek/include/event2 -I/usr/bin/museek/include/sigc++-2.0 -I/usr/bin/museek/include/sigc++-2.0 -DICONV_NON_CONST -I/usr/bin/museek/include -o CMakeFiles/cmTryCompileExec1377213226.dir/src.cxx.o -c /dev.museek/museek/sources/_tmp_workdir/CMakeFiles/CMakeTmp/src.cxx
Linking CXX executable cmTryCompileExec1377213226
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec1377213226.dir/link.txt --verbose=1
/usr/bin/c++ -L/usr/bin/museek/lib -I/usr/bin/museek/include -I/usr/bin/museek/include/ncursesw -I/usr/bin/museek/include/libxml2 -I/usr/bin/museek/include/libxml2/libxml -I/usr/bin/museek/include/libxml++-2.6 -I/usr/bin/museek/include/libxml++-2.6/libxml++ -I/usr/bin/museek/include/libxml++ -I/usr/bin/museek/include/openssl -I/usr/bin/museek/include/python2.7 -I/usr/bin/museek/include/ogg -I/usr/bin/museek/include/vorbis -I/usr/bin/museek/include/event2 -I/usr/bin/museek/include/giomm-2.4 -I/usr/bin/museek/include/glibmm-2.4 -I/usr/bin/museek/include/event2 -I/usr/bin/museek/include/sigc++-2.0 -I/usr/bin/museek/include/sigc++-2.0 -DICONV_NON_CONST -L/usr/bin/museek/lib CMakeFiles/cmTryCompileExec1377213226.dir/src.cxx.o -o cmTryCompileExec1377213226 -rdynamic
CMakeFiles/cmTryCompileExec1377213226.dir/src.cxx.o: In function `main':
src.cxx:(.text+0x39): undefined reference to `libiconv'
collect2: ld returned 1 exit status
make[1]: Leaving directory `/dev.museek/museek/sources/_tmp_workdir/CMakeFiles/CMakeTmp'
make[1]: *** [cmTryCompileExec1377213226] Error 1
make: *** [cmTryCompileExec1377213226/fast] Error 2
Source file was:
#include <iconv.h>
int main(int argc, char ** argv)
{ return iconv(0, (char **)0, 0, (char**)0, 0); }
So is there any chance to fix it somehow? Thank you!

Can you give the result of this command please?:
thanks