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

Ivan A. Melnikov iv на altlinux.org
Пн Янв 31 20:50:24 UTC 2011


On Mon, 31 Jan 2011 22:42:28 +0200
"Kirill A. Shutemov" <kirill на shutemov.name> wrote:

> 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.
> 

Апстриму ld или systemd?

-- 
WBR,
Ivan A. Melnikov


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