В репах Debian sid и Ubuntu 10.04 появился пакет сuneiform, что конечно не может радовать.
Но как-то попался мне рисунок замысловатый, который уронил сuneiform.
Но это не беда -- верный gdb мудростью нас одарит неземной.
О, боже! Что за оказия?! Что ты мне кажешь верный gdb?!
Код: Выделить всё
$ gdb -q cuneiform
Reading symbols from /usr/bin/cuneiform...(no debugging symbols found)...done.
(gdb) quitНеужели make был без опции "-g"?!
Пересоберём пакет! Лог сборки (начало, если будет нужно выложу остальное):
Код: Выделить всё
dpkg-buildpackage -rfakeroot -D -us -uc
dpkg-buildpackage: установка CFLAGS в значение по умолчанию: -g -O2
dpkg-buildpackage: установка CPPFLAGS в значение по умолчанию:
dpkg-buildpackage: установка LDFLAGS в значение по умолчанию: -Wl,-Bsymbolic-functions
dpkg-buildpackage: установка FFLAGS в значение по умолчанию: -g -O2
dpkg-buildpackage: установка CXXFLAGS в значение по умолчанию: -g -O2
dpkg-buildpackage: пакет исходных текстов cuneiform
dpkg-buildpackage: версия исходных текстов 0.7.0+dfsg-5
dpkg-buildpackage: исходные тексты изменены Daniel Baumann <daniel@debian.org>
dpkg-buildpackage: архитектура хоста i386
fakeroot debian/rules clean
dh clean
dh_testdir
debian/rules override_dh_auto_clean
make[1]: Вход в каталог `/home/sciko/test/cuneiform-0.7.0+dfsg'
dh_auto_clean
rm -rf build
make[1]: Выход из каталога `/home/sciko/test/cuneiform-0.7.0+dfsg'
dh_clean
dpkg-source -b cuneiform-0.7.0+dfsg
dpkg-source: инфо: используется формат исходника `1.0'
dpkg-source: инфо: сборка cuneiform с использованием существующего cuneiform_0.7.0+dfsg.orig.tar.gz
dpkg-source: инфо: сборка cuneiform в cuneiform_0.7.0+dfsg-5.diff.gz
dpkg-source: инфо: сборка cuneiform в cuneiform_0.7.0+dfsg-5.dsc
debian/rules build
dh build
dh_testdir
dh_auto_configure
-- The C compiler identification is GNU
-- The CXX compiler identification is GNU
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for stddef.h
-- Looking for stddef.h - found
-- Check size of void*
-- Check size of void* - done
-- Performing Test HAVE_GCCVISIBILITY
-- Performing Test HAVE_GCCVISIBILITY - Success
-- checking for module 'ImageMagick++'
-- found ImageMagick++, version 6.5.1
-- Adding __snp.c to individual libraries.
-- Configuring done
-- Generating done
-- Build files have been written to: /home/sciko/test/cuneiform-0.7.0+dfsg/obj-i486-linux-gnu
debian/rules override_dh_auto_build
make[1]: Вход в каталог `/home/sciko/test/cuneiform-0.7.0+dfsg'
mkdir -p build
cd build && cmake -DCMAKE_BUILD_TYPE=relwithdebinfo -DCMAKE_EXE_LINKER_FLAGS:STRING=-Wl,--as-needed -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_RPATH=/usr/lib/cuneiform ..
-- The C compiler identification is GNU
-- The CXX compiler identification is GNU
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for stddef.h
-- Looking for stddef.h - found
-- Check size of void*
-- Check size of void* - done
-- Performing Test HAVE_GCCVISIBILITY
-- Performing Test HAVE_GCCVISIBILITY - Success
-- checking for module 'ImageMagick++'
-- found ImageMagick++, version 6.5.1
-- Adding __snp.c to individual libraries.
-- Configuring done
-- Generating done
-- Build files have been written to: /home/sciko/test/cuneiform-0.7.0+dfsg/build
/usr/bin/make -C build
make[2]: Вход в каталог `/home/sciko/test/cuneiform-0.7.0+dfsg/build'
make[3]: Вход в каталог `/home/sciko/test/cuneiform-0.7.0+dfsg/build'
make[4]: Вход в каталог `/home/sciko/test/cuneiform-0.7.0+dfsg/build'
Scanning dependencies of target windummy
make[4]: Выход из каталога `/home/sciko/test/cuneiform-0.7.0+dfsg/build'
make[4]: Вход в каталог `/home/sciko/test/cuneiform-0.7.0+dfsg/build'
............WTF? Ключ -g на месте или я чего-то не понимаю?
Поиск по лаунчпаду дал вот этот баг. Но это прокатывает для Gentoo, но не для Ubuntu.
Какие предложение будут? Предупреждаю сразу: я с сmake не очень дружу.
ЗЫ. Собирал и версию из репов и самую последнюю с лаунчпада. Без разницы.
ЗЫЫ. Файл, который предлагается патчить:
Код: Выделить всё
include_directories(Kern/include
Kern/h
Kern/hh
Kern/hhh
Kern/hdebug
Kern/hrk
Kern/hrkint
Kern/hrstr
Kern/fon/src
Kern/usage
)
# Hide non exported functions/variables
include(CheckCCompilerFlag)
if(CMAKE_COMPILER_IS_GNUCC AND NOT WIN32)
check_c_compiler_flag("-fvisibility=hidden -DHAVE_GCCVISIBILITY" HAVE_GCCVISIBILITY)
if (HAVE_GCCVISIBILITY)
add_definitions("-fvisibility=hidden -DHAVE_GCCVISIBILITY")
endif()
endif()
# Stop MSVC complaints about POSIX functions.
if(MSVC)
add_definitions(-D_CRT_SECURE_NO_WARNINGS)
if(NOT MSVC60)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /wd4996")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4996")
endif()
endif()
add_definitions(-D_USE_RVERLINE_)
find_package(ImageMagick COMPONENTS Magick++)
if(ImageMagick_Magick++_FOUND)
set(USE_MAGICK TRUE)
include_directories(${ImageMagick_Magick++_INCLUDE_DIR})
message(STATUS "ImageMagick++ found at ${ImageMagick_Magick++_INCLUDE_DIR}.")
set(cli_ext_libs ${ImageMagick_Magick++_LIBRARY})
else()
set(USE_MAGICK FALSE)
message(STATUS "ImageMagick++ not found. Only uncompressed BMP images supported.")
endif()
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Kern/include/config.h.in ${CMAKE_CURRENT_BINARY_DIR}/Kern/include/config.h)
include_directories(${CMAKE_CURRENT_BINARY_DIR}/Kern/include)
# Libdl is needed only on Apple and Linux (that I know of).
if(NOT WIN32 AND NOT CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
find_library(DL_LIB dl)
endif()
# Emulate Windows DLL symbol resolve order.
if(UNIX AND NOT APPLE)
set(CMAKE_SHARED_LINKER_FLAGS "-Wl,-Bsymbolic")
endif()
if(MINGW)
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -mwindows")
endif()
add_subdirectory(Kern)
add_subdirectory(cli)