2013-12-17 6 views
1

Есть ли возможность сохранять символы отладки при создании общего объекта из объектного файла?Как сохранить символы отладки при создании общей библиотеки

Например, я создаю свой объектный файл с помощью отладочных символов, используя cc, используя неявную цель и добавляя только -g к CFLAGS. Затем я создаю файл общего объекта (.so), определяя настраиваемую цель, в которой я использую параметр -shared для cc.

Мои наблюдения до сих пор являются:

  • при создании разделяемого объекта непосредственно из файлов исходного кода я получаю символы отладки
  • используя опцию -g при создании разделяемого объекта из объектного файла с отладочной включены не помогает

Мое предположение:

  • отладочные символы действительно не включены, так как при создании оборотов в минуту, /usr/lib/rpm/find-debuginfo.sh запускается автоматически, и я получаю некоторые предупреждения, что мои файлы уже зачищенные

Если точная файлы необходимы для проверки, например, как создается радиус.so: http://git.ozlabs.org/?p=ppp.git;a=blob;f=pppd/plugins/radius/Makefile.linux;h=24ed3e580c4db6aeca129dd22dbe6de5f2d1ff5f;hb=HEAD

Мне нужно еще раз отметить, что я добавил параметр -g для CFLAGS.

Спасибо!

ответ

2

Быстрый и грязный ответ добавить выход 0 в конце% инсталляционный скрипт, который отключает различных помощников, которые добавляются к концу % установки строить скриптлет при запуске.

Более конкретный ответ заключается в изучении вспомогательных скриптлетов (который полоса общих библиотек символов отладки) с помощью оборотов --showrc на вашей системе и изменить то, что помощники выполняются в настоящее время.

Два наиболее важных макросов, которые должны быть сконфигурированы для сНаЫе символ отладки зачистки являются:

# Define per-arch and per-os defaults. Normally overridden by per-target macros. 
%__arch_install_post %{nil} 
%__os_install_post  %{___build_post} 

которые обычно повторно определены в пакете RedHat оборотов в минуту-конфигурации.