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