On Tue, Jan 22, 2013 at 9:55 PM, Carsten Haitzler <ras...@rasterman.com> wrote:
> On Tue, 22 Jan 2013 13:58:25 -0800 "Enlightenment SVN"
> <no-re...@enlightenment.org> said:
>
> as of this commit... efl build is broken due to DSO changes.
>
> also.. efl build is currently "broken" anyway - with or without this as it
> prefers to link to installed efl libs rather than the newly compiled ones...
> inside the efl tree... :( so eg - add new func to lib and use it .. and u get
> symbol problems. :( fyi the DSO problems happen all over the place in linking
> stuff (normally i parallel build so i see it in lots of binaries - i turned
> parallel build off for this log):

doing make -j30 here (icecream buildfarm at company), with ccache I'm
able to build efl in 10 seconds or so :-/


> /bin/bash ../libtool  --tag=CC   --mode=link ccache gcc -std=gnu99  -O2 -g
> -pipe -march=native -fvisibility=hidden -ffast-math -W -Wall -Wextra
> -Wno-shadow -Wno-unused-but-set-parameter   -o bin/eet/eet
> bin/eet/bin_eet_eet-eet_main.o -fvisibility=hidden -fdata-sections
> -ffunction-sections -Wl,--gc-sections -fno-strict-aliasing -Wl,--as-needed
> -Wl,--no-copy-dt-needed-entries    lib/eet/libeet.la
>
> libtool: link: ccache gcc -std=gnu99 -O2 -g -pipe -march=native
> -fvisibility=hidden -ffast-math -W -Wall -Wextra -Wno-shadow
> -Wno-unused-but-set-parameter -o bin/eet/.libs/eet
> bin/eet/bin_eet_eet-eet_main.o -fvisibility=hidden -fdata-sections
> -ffunction-sections -Wl,--gc-sections -fno-strict-aliasing -Wl,--as-needed
> -Wl,--no-copy-dt-needed-entries  lib/eet/.libs/libeet.so /usr/bin/ld:
> bin/eet/bin_eet_eet-eet_main.o: undefined reference to symbol
> 'eina_iterator_next' /usr/bin/ld: note: 'eina_iterator_next' is defined in
> DSO /usr/local/lib/libeina.so.1 so try adding it to the linker command
> line /usr/local/lib/libeina.so.1: could not read symbols: Invalid operation
> collect2: ld returned 1 exit status
>
> i have to revert this (plus the follow-on patch to fix cserve2) because this
> basically stops efl being built entirely if your binutils enforce DSO linking.

As said in the previous email (the one that you revert): It would be
nice to force the DSO everywhere, so it will fail in every distro. I
tried that with the -Wl,--no-copy-dt-needed-entries (that would avoid
recursively copying of DT_NEEDED), without success.


> so right now the efl tree has 1 major problem... libs and binaries LINK to the
> installed system ones instead of the compile in efl tree ones... and that is
> going (and already does) cause all manner of pain. it affects anyone 
> rebuilding
> efl who has it already installed as well. doesn't affect fresh "efl-free"
> systems. :\

They shouldn't as we always refer to libname.la, and this should
-Llib/name/.libs before -lname. Also when we run the binaries the
libtool should do the right thing and LD_LIBRARY_PATH the directories.

This libtool and autotools in general is becoming depressing, it can't
get shit right, and particularly can't get shit homogeneously. Our
buildbot (gentoo 64bits) runs the same libtool version as I do (arch
32bits) yet it will fail when relinking, but just when distcheck, not
the other times.

Tasn have said about cmake, if he could get it out for a try it would
be nice. I doubt the 'in-tree' problem would be solved, as unlike
libtool it does not LD_LIBRARY_PATH and similar, but  if that's the
only problem we can try to overcome this ourselves by using a
launcher-command that will do the right thing.

Alternatively I'm thinking about getting Kernel's kbuild and modifying
that to produce stuff that we need. We basically have 4 types of
binaries: programs (bin/), libraries (lib/), helpe programs
(lib/name/arch/program) and modules (lib/name/modname/arch/module.so).
Except of dependencies, they are all in the same template, but
automake doesn't know that and we need to replicate everything every
time. If we could do:

   programs += src/bin/efreet/efreetd
   helper_programs += src/bin/efreet/efreet_desktop_cache_create
   libraries += src/lib/efreet/libefreet.so

then a simple way to declare their dependencies, it could figure from
path where to install, specify version and other linker stuff that
right now we replicate all over the place :-/

--
Gustavo Sverzut Barbieri
http://profusion.mobi embedded systems
--------------------------------------
MSN: barbi...@gmail.com
Skype: gsbarbieri
Mobile: +55 (19) 9225-2202

------------------------------------------------------------------------------
Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS,
MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current
with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft
MVPs and experts. ON SALE this month only -- learn more at:
http://p.sf.net/sfu/learnnow-d2d
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to