[devel] --as-needed и --gc-section was: Re: [sisyphus] systemd

Kirill A. Shutemov kirill на shutemov.name
Пн Янв 31 20:42:28 UTC 2011


On Mon, Jan 31, 2011 at 11:05:49PM +0300, Ivan A. Melnikov wrote:
> On Mon, 31 Jan 2011 21:39:04 +0300
> Alexey Shabalin <a.shabalin на gmail.com> wrote:
> [...]
> > ibtool: link: x86_64-alt-linux-gcc -std=gnu99 -I/usr/include/dbus-1.0
> > -I/usr/lib64/dbus-1.0/include -pipe -Wall -O2 -pipe -Wall -W -Wextra
> > -Wno-inline -Wvla -Wundef -Wformat=2 -Wlogical-op -Wsign-compare
> > -Wformat-security -Wmissing-include-dirs -Wformat-nonliteral
> > -Wold-style-definition -Wpointer-arith -Winit-self
> > -Wdeclaration-after-statement -Wfloat-equal -Wmissing-prototypes
> > -Wstrict-prototypes -Wredundant-decls -Wmissing-declarations
> > -Wmissing-noreturn -Wshadow -Wendif-labels -Wcast-align
> > -Wstrict-aliasing=2 -Wwrite-strings -Wno-long-long
> > -Wno-overlength-strings -Wno-unused-parameter
> > -Wno-missing-field-initializers -Wno-unused-result
> > -Wp,-D_FORTIFY_SOURCE=2 -ffast-math -fno-common
> > -fdiagnostics-show-option -fno-strict-aliasing -fvisibility=hidden
> > -ffunction-sections -fdata-sections -Wl,--as-needed -Wl,--gc-sections
> > -o systemd src/systemd-main.o  ./.libs/libsystemd-core.a -lselinux
> > -ldbus-1 -lpthread -ludev -lwrap -lpam -lpam_misc -laudit -lcap -ldl
> > -lrt
> 
> Читал.
> 
> > Правильно ли я понимаю, что пока не собраны все остальные библиотеки
> > (libselinux, libdbus, libudev, и остальные ) с параметрами
> > -ffunction-sections -fdata-sections -Wl,--gc-sections, то собирать
> > systemd с gc-sections не имеет смысла?
> 
> Не вижу связи. Эти опции, насколько я понимаю, работают независимо от
> зависимостей.
> 
> > Стоит ли к нашему gcc по умолчанию добавлять эти опции, как сделано
> > для --as-needed? Правильно ли сейчас ругается
> > lib.req: WARNING: /home/alex/tmp/systemd-buildroot/bin/systemd:
> > overlinked libraries: /lib64/ld-linux-x86-64.so.2
> > или lib.req ведёт себя не верно в этом случае.
> 
> Ругается правильно, и ведёт себя верно: фактически, программа
> перелинкована. Другой вопрос, что не ясно, как с этим бороться, и что
> (кроме отсутствия соответсвующей строки в логах сборки) это даст.

Сходите к апстриму в багзиллу. Поставте меня в CC.

-- 
 Kirill A. Shutemov


Подробная информация о списке рассылки Devel