Ruslan Ermilov wrote:
>
> On Fri, Feb 08, 2002 at 07:06:09AM -0800, Terry Lambert wrote:
> > Maxim Sobolev wrote:
> > > No, I meant ld(1). The problem here is that in the case when libc is
> > > recorded before libc_r in dynamic dependencies list the resulting
> > > executable may not work correctly (see my testcase).
> >
> > Patient: "Doctor, it hurts when I record libc before libc_r
> > in the dynamic dependencies list!"
> >
> > Doctor: [expected response]
> >
> > 8-).
> >
> > Seriously, the "Evolution" build process is seriously
> > broken; it works on Linux because Linux has a simple
> > threads implementation, rather than an efficient one.
> >
> Doctor's Assistant: "No library should ever have an explicit
> dependency on libc".
But no library has it here! libc comes out of blue just before libc_r
- see attached script. Perhaps I'm missing something, but I can't
figure out where it comes from, could you?
-Maxim
Script started on Fri Feb 8 17:41:11 2002
root@notebook# gmake
Making all in glade
gmake[1]: ���� � �������
`/tmp/portbuild/usr/ports/mail/evolution/work/evolution-1.0.2/shell/glade'
gmake[1]: ���� `all' �� ������� ���������� ������.
gmake[1]: ����� �� �������
`/tmp/portbuild/usr/ports/mail/evolution/work/evolution-1.0.2/shell/glade'
Making all in importer
gmake[1]: ���� � �������
`/tmp/portbuild/usr/ports/mail/evolution/work/evolution-1.0.2/shell/importer'
gmake[1]: ���� `all' �� ������� ���������� ������.
gmake[1]: ����� �� �������
`/tmp/portbuild/usr/ports/mail/evolution/work/evolution-1.0.2/shell/importer'
gmake[1]: ���� � �������
`/tmp/portbuild/usr/ports/mail/evolution/work/evolution-1.0.2/shell'
/bin/sh ../libtool --mode=link cc -pipe -O -mpreferred-stack-boundary=2
-march=pentium -I/usr/X11R6/include -Wall -Wunused -L/usr/X11R6/lib -o evolution
e-activity-handler.o e-component-registry.o e-corba-shortcuts.o
e-corba-storage-registry.o e-corba-storage.o e-folder-type-registry.o e-folder.o
e-gray-bar.o e-local-folder.o e-local-storage.o e-setup.o e-shell-about-box.o
e-shell-folder-commands.o e-shell-folder-creation-dialog.o
e-shell-folder-selection-dialog.o e-shell-folder-title-bar.o e-shell-importer.o
e-shell-offline-handler.o e-shell-startup-wizard.o
e-shell-user-creatable-items-handler.o e-shell-utils.o e-shell-view-menu.o
e-shell-view.o e-shell.o e-shortcuts-view-model.o e-shortcuts-view.o e-shortcuts.o
e-splash.o e-storage-set-view.o e-storage-set.o e-storage.o e-summary-storage.o
e-task-bar.o e-task-widget.o e-uri-schema-registry.o evolution-storage-set-view.o
evolution-storage-set-view-factory.o main.o libeshell.la
importer/libevolution-importer.la
../widgets/e-timezone-dialog/libetimezonedialog.a
../widgets/misc/libemiscwidgets.a ../e-util/libeutil.la
../libical/src/libical/libical-evolution.la -Wl,-E
-L/usr/X11R6/lib -L/usr/local/lib -lgal -lgnomeprint -lfreetype -lglade-gnome -lglade
-lxml -lXpm -ljpeg -lgnomeui -lart_lgpl -lgdk_imlib -ltiff -lungif -lpng -lz -lSM
-lICE -lgnome -lgnomesupport -lesd -laudiofile -lgdk_pixbuf -lgtk12 -lgdk12
-lgmodule12 -lglib12 -lintl -lXext -lX11 -lm -lgnomecanvaspixbuf -lgiconv -lc_r
-L/usr/local/lib -lgthread12 -lglib12 -lc_r
-Wl,-E -L/usr/X11R6/lib -L/usr/local/lib -lgnomeprint -lXpm -ljpeg -lgnomeui
-lgdk_imlib -ltiff -lungif -lpng -lSM -lICE -lgnome -lgnomesupport -lesd -laudiofile
-lgdk_pixbuf -lgtk12 -lgdk12 -lgmodule12 -lglib12 -lintl -lXext -lX11 -lart_lgpl -lm
-lxml -lz -lfreetype -Wl,-E
-L/usr/X11R6/lib -L/usr/local/lib -lgtkhtml -lgal -lgnomeprint -lfreetype
-lglade-gnome -lglade -lxml -lXpm -ljpeg -lgnomeui -lart_lgpl -lgdk_imlib -ltiff
-lungif -lpng -lz -lSM -lICE -lgnome -lgnomesupport -lesd -laudiofile -lgdk_pixbuf
-lgnomecanvaspixbuf -lgiconv -lgconf-gtk-1 -lgconf-1 -loaf -lORBitCosNaming -lORBit
-lIIOP -lORBitutil -lwrap -lgtk12 -lgdk12 -lgmodule12 -lglib12 -lintl -lXext -lX11 -lm
-Wl,-E -L/usr/X11R6/lib
-L/usr/local/lib -lbonobo_conf -lbonobo -loaf -lORBitCosNaming -lORBit -lIIOP
-lORBitutil -lwrap -lbonobox -lXpm -ljpeg -lgnomeui -lart_lgpl -lgdk_imlib -ltiff
-lungif -lpng -lSM -lICE -lgdk_pixbuf -lgtk12 -lgdk12 -lgmodule12 -lXext -lX11 -lxml
-lz -lgnome -lgnomesupport -lintl -lesd -laudiofile -lm -lglib12
-Wl,-E -L/usr/X11R6/lib -L/usr/local/lib -lbonobo -loaf
-lORBitCosNaming -lORBit -lIIOP -lORBitutil -lwrap -lbonobox -lbonobo-print
-lgnomeprint -lfreetype -lglade-gnome -lglade -lxml -lgdk_pixbuf -lgnomecanvaspixbuf
-lXpm -ljpeg -lgnomeui -lart_lgpl -lgdk_imlib -ltiff -lungif -lpng -lz -lSM -lICE
-lgtk12 -lgdk12 -lgmodule12 -lXext -lX11 -lgnome -lgnomesupport -lintl -lesd
-laudiofile -lm -lglib12 -lc_r -L/usr/local/lib
cc -pipe -O -mpreferred-stack-boundary=2 -march=pentium -I/usr/X11R6/include -Wall
-Wunused -o .libs/evolution e-activity-handler.o e-component-registry.o
e-corba-shortcuts.o e-corba-storage-registry.o e-corba-storage.o
e-folder-type-registry.o e-folder.o e-gray-bar.o e-local-folder.o e-local-storage.o
e-setup.o e-shell-about-box.o e-shell-folder-commands.o
e-shell-folder-creation-dialog.o e-shell-folder-selection-dialog.o
e-shell-folder-title-bar.o e-shell-importer.o e-shell-offline-handler.o
e-shell-startup-wizard.o e-shell-user-creatable-items-handler.o e-shell-utils.o
e-shell-view-menu.o e-shell-view.o e-shell.o e-shortcuts-view-model.o
e-shortcuts-view.o e-shortcuts.o e-splash.o e-storage-set-view.o e-storage-set.o
e-storage.o e-summary-storage.o e-task-bar.o e-task-widget.o e-uri-schema-registry.o
evolution-storage-set-view.o evolution-storage-set-view-factory.o main.o -Wl,-E -Wl,-E
-Wl,-E -Wl,-E -Wl,-E -L/usr/X11R6/lib ./.libs/libeshell.so -L/usr/local/lib
importer/.libs/libevolution-importer.so
../widgets/e-timezone-dialog/libetimezonedialog.a ../widgets/misc/libemiscwidgets.a
../e-util/.libs/libeutil.al ../libical/src/libical/.libs/libical-evolution.so
-lgthread12 -lgtkhtml -lgal -lgiconv -lgconf-gtk-1 -lgconf-1 -lbonobo_conf -lbonobo
-loaf -lORBitCosNaming -lORBit -lIIOP -lORBitutil -lwrap -lbonobox -lbonobo-print
-lgnomeprint -lfreetype -lglade-gnome -lglade -lxml -lgdk_pixbuf -lgnomecanvaspixbuf
-lXpm -ljpeg -lgnomeui -lart_lgpl -lgdk_imlib -ltiff -lungif -lpng -lz -lSM -lICE
-lgtk12 -lgdk12 -lgmodule12 -lXext -lX11 -lgnome -lgnomesupport -lintl -lesd
-laudiofile -lm -lglib12 -Wl,--rpath -Wl,/usr/X11R6/lib
importer/.libs/libevolution-importer.so: warning: mktemp() possibly used unsafely;
consider using mkstemp()
creating evolution
gmake[1]: ����� �� �������
`/tmp/portbuild/usr/ports/mail/evolution/work/evolution-1.0.2/shell'
root@notebook# ldd .libs/evolution
.libs/evolution:
libeshell.so.0 => /usr/X11R6/lib/libeshell.so.0 (0x280ab000)
libevolution-importer.so.0 => /usr/X11R6/lib/libevolution-importer.so.0
(0x280e0000)
libical-evolution.so.0 => /usr/X11R6/lib/libical-evolution.so.0 (0x280fd000)
libgthread12.so.3 => /usr/local/lib/libgthread12.so.3 (0x2814e000)
libgtkhtml.so.21 => /usr/X11R6/lib/libgtkhtml.so.21 (0x28151000)
libgal.so.19 => /usr/X11R6/lib/libgal.so.19 (0x281c5000)
libgiconv.so.2 => /usr/local/lib/libgiconv.so.2 (0x282ab000)
libgconf-gtk-1.so.1 => /usr/X11R6/lib/libgconf-gtk-1.so.1 (0x28380000)
libgconf-1.so.1 => /usr/X11R6/lib/libgconf-1.so.1 (0x28386000)
libbonobo_conf.so.0 => /usr/X11R6/lib/libbonobo_conf.so.0 (0x283bd000)
libbonobo.so.2 => /usr/X11R6/lib/libbonobo.so.2 (0x283df000)
liboaf.so.0 => /usr/X11R6/lib/liboaf.so.0 (0x2843b000)
libORBitCosNaming.so.2 => /usr/local/lib/libORBitCosNaming.so.2 (0x28453000)
libORBit.so.2 => /usr/local/lib/libORBit.so.2 (0x2845b000)
libIIOP.so.2 => /usr/local/lib/libIIOP.so.2 (0x284a3000)
libORBitutil.so.2 => /usr/local/lib/libORBitutil.so.2 (0x284ab000)
libwrap.so.3 => /usr/lib/libwrap.so.3 (0x284ad000)
libbonobox.so.2 => /usr/X11R6/lib/libbonobox.so.2 (0x284b4000)
libbonobo-print.so.2 => /usr/X11R6/lib/libbonobo-print.so.2 (0x28509000)
libgnomeprint.so.16 => /usr/X11R6/lib/libgnomeprint.so.16 (0x2850d000)
libfreetype.so.8 => /usr/X11R6/lib/libfreetype.so.8 (0x28966000)
libglade-gnome.so.4 => /usr/X11R6/lib/libglade-gnome.so.4 (0x2899f000)
libglade.so.4 => /usr/X11R6/lib/libglade.so.4 (0x289ad000)
libxml.so.5 => /usr/local/lib/libxml.so.5 (0x289c3000)
libgdk_pixbuf.so.2 => /usr/X11R6/lib/libgdk_pixbuf.so.2 (0x28a31000)
libgnomecanvaspixbuf.so.1 => /usr/X11R6/lib/libgnomecanvaspixbuf.so.1
(0x28a45000)
libXpm.so.4 => /usr/X11R6/lib/libXpm.so.4 (0x28a49000)
libjpeg.so.9 => /usr/local/lib/libjpeg.so.9 (0x28a56000)
libgnomeui.so.5 => /usr/X11R6/lib/libgnomeui.so.5 (0x28a73000)
libart_lgpl.so.5 => /usr/X11R6/lib/libart_lgpl.so.5 (0x28b39000)
libgdk_imlib.so.5 => /usr/X11R6/lib/libgdk_imlib.so.5 (0x28b46000)
libtiff.so.4 => /usr/local/lib/libtiff.so.4 (0x28b6f000)
libungif.so.5 => /usr/local/lib/libungif.so.5 (0x28bb2000)
libpng.so.5 => /usr/local/lib/libpng.so.5 (0x28bba000)
libz.so.2 => /usr/lib/libz.so.2 (0x28bdb000)
libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0x28be8000)
libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0x28bf1000)
libgtk12.so.2 => /usr/X11R6/lib/libgtk12.so.2 (0x28c06000)
libgdk12.so.2 => /usr/X11R6/lib/libgdk12.so.2 (0x28d24000)
libgmodule12.so.3 => /usr/local/lib/libgmodule12.so.3 (0x28d55000)
libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x28d58000)
libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x28d65000)
libgnome.so.5 => /usr/X11R6/lib/libgnome.so.5 (0x28e1e000)
libgnomesupport.so.5 => /usr/X11R6/lib/libgnomesupport.so.5 (0x28e34000)
libintl.so.1 => /usr/local/lib/libintl.so.1 (0x28e3b000)
libesd.so.2 => /usr/local/lib/libesd.so.2 (0x28e40000)
libaudiofile.so.0 => /usr/local/lib/libaudiofile.so.0 (0x28e47000)
libm.so.2 => /usr/lib/libm.so.2 (0x28e67000)
libglib12.so.3 => /usr/local/lib/libglib12.so.3 (0x28e8b000)
libc.so.5 => /usr/lib/libc.so.5 (0x28eac000)
libc_r.so.5 => /usr/lib/libc_r.so.5 (0x28f5d000)
libpopt.so.0 => /usr/local/lib/libpopt.so.0 (0x28f7b000)
libXThrStub.so.6 => /usr/X11R6/lib/libXThrStub.so.6 (0x28f81000)
root@notebook# ldd .libs/evolution | awk '{print $3}'
/usr/X11R6/lib/libeshell.so.0
/usr/X11R6/lib/libevolution-importer.so.0
/usr/X11R6/lib/libical-evolution.so.0
/usr/local/lib/libgthread12.so.3
/usr/X11R6/lib/libgtkhtml.so.21
/usr/X11R6/lib/libgal.so.19
/usr/local/lib/libgiconv.so.2
/usr/X11R6/lib/libgconf-gtk-1.so.1
/usr/X11R6/lib/libgconf-1.so.1
/usr/X11R6/lib/libbonobo_conf.so.0
/usr/X11R6/lib/libbonobo.so.2
/usr/X11R6/lib/liboaf.so.0
/usr/local/lib/libORBitCosNaming.so.2
/usr/local/lib/libORBit.so.2
/usr/local/lib/libIIOP.so.2
/usr/local/lib/libORBitutil.so.2
/usr/lib/libwrap.so.3
/usr/X11R6/lib/libbonobox.so.2
/usr/X11R6/lib/libbonobo-print.so.2
/usr/X11R6/lib/libgnomeprint.so.16
/usr/X11R6/lib/libfreetype.so.8
/usr/X11R6/lib/libglade-gnome.so.4
/usr/X11R6/lib/libglade.so.4
/usr/local/lib/libxml.so.5
/usr/X11R6/lib/libgdk_pixbuf.so.2
/usr/X11R6/lib/libgnomecanvaspixbuf.so.1
/usr/X11R6/lib/libXpm.so.4
/usr/local/lib/libjpeg.so.9
/usr/X11R6/lib/libgnomeui.so.5
/usr/X11R6/lib/libart_lgpl.so.5
/usr/X11R6/lib/libgdk_imlib.so.5
/usr/local/lib/libtiff.so.4
/usr/local/lib/libungif.so.5
/usr/local/lib/libpng.so.5
/usr/lib/libz.so.2
/usr/X11R6/lib/libSM.so.6
/usr/X11R6/lib/libICE.so.6
/usr/X11R6/lib/libgtk12.so.2
/usr/X11R6/lib/libgdk12.so.2
/usr/local/lib/libgmodule12.so.3
/usr/X11R6/lib/libXext.so.6
/usr/X11R6/lib/libX11.so.6
/usr/X11R6/lib/libgnome.so.5
/usr/X11R6/lib/libgnomesupport.so.5
/usr/local/lib/libintl.so.1
/usr/local/lib/libesd.so.2
/usr/local/lib/libaudiofile.so.0
/usr/lib/libm.so.2
/usr/local/lib/libglib12.so.3
/usr/lib/libc.so.5
/usr/lib/libc_r.so.5
/usr/local/lib/libpopt.so.0
/usr/X11R6/lib/libXThrStub.so.6
root@notebook# ldd .libs/evolution | awk '{print $3}' | grep -v /usr/lib/libc.so |
xargs ldd | grep libc.so
root@notebook# exit
Script done on Fri Feb 8 17:43:04 2002