View previous topic :: View next topic |
Author |
Message |
Klaus Meier Advocate
Joined: 18 Apr 2005 Posts: 2908 Location: Bozen
|
Posted: Sun Nov 30, 2014 6:54 am Post subject: cairo und lto |
|
|
Ich habe gerade das Problem, dass sich cairo-1.12.16-r4 mit dem USE-Flag lto nicht übersetzen lässt. Ich bin ja beim gcc 4.9.2. Wollte mal nachfragen, wie es bei denen aussieht, die noch beim gcc 4.8.3 sind. Gerade bei lto soll der 4.9 ja deutliche Verbesserungen bringen. Ich wollte erst mal hier nachfragen, bevor ich ewig am gcc-4.8.3 rumkompiliere und der 4.9.2 ist ja auch noch maskiert.
Die Fehlermeldung sind so aus: Code: | /var/tmp/portage/x11-libs/cairo-1.12.16-r4/temp/ccx6CehJ.ltrans0.ltrans.o: In function `main':
ccx6CehJ.ltrans0.o:(.text.startup+0x13d): undefined reference to `cairo_boilerplate_get_target_by_name'
ccx6CehJ.ltrans0.o:(.text.startup+0x191): undefined reference to `cairo_boilerplate_xmalloc'
ccx6CehJ.ltrans0.o:(.text.startup+0x26d): undefined reference to `cairo_boilerplate_xmalloc'
ccx6CehJ.ltrans0.o:(.text.startup+0x410): undefined reference to `cairo_boilerplate_xmalloc'
ccx6CehJ.ltrans0.o:(.text.startup+0x58d): undefined reference to `cairo_boilerplate_xmalloc'
ccx6CehJ.ltrans0.o:(.text.startup+0x5ee): undefined reference to `cairo_boilerplate_xmalloc'
/var/tmp/portage/x11-libs/cairo-1.12.16-r4/temp/ccx6CehJ.ltrans0.ltrans.o:ccx6CehJ.ltrans0.o:(.text.startup+0x66f): more undefined references to `cairo_boilerplate_xmalloc' follow
/var/tmp/portage/x11-libs/cairo-1.12.16-r4/temp/ccx6CehJ.ltrans0.ltrans.o: In function `main':
ccx6CehJ.ltrans0.o:(.text.startup+0x99b): undefined reference to `cairo_boilerplate_xrealloc'
ccx6CehJ.ltrans0.o:(.text.startup+0xc2d): undefined reference to `cairo_boilerplate_xrealloc'
ccx6CehJ.ltrans0.o:(.text.startup+0xfd7): undefined reference to `cairo_boilerplate_xrealloc'
ccx6CehJ.ltrans0.o:(.text.startup+0x11ca): undefined reference to `cairo_boilerplate_xrealloc'
/var/tmp/portage/x11-libs/cairo-1.12.16-r4/temp/ccx6CehJ.ltrans1.ltrans.o: In function `_surface_create.lto_priv.8':
ccx6CehJ.ltrans1.o:(.text+0x56): undefined reference to `cairo_boilerplate_xmalloc'
/var/tmp/portage/x11-libs/cairo-1.12.16-r4/temp/ccx6CehJ.ltrans1.ltrans.o: In function `get_surface_size':
ccx6CehJ.ltrans1.o:(.text+0x153): undefined reference to `cairo_boilerplate_xmalloc'
/var/tmp/portage/x11-libs/cairo-1.12.16-r4/temp/ccx6CehJ.ltrans1.ltrans.o: In function `_context_create.lto_priv.9':
ccx6CehJ.ltrans1.o:(.text+0x1d8): undefined reference to `cairo_boilerplate_xmalloc'
/var/tmp/portage/x11-libs/cairo-1.12.16-r4/temp/ccx6CehJ.ltrans1.ltrans.o: In function `recorder.lto_priv.11':
ccx6CehJ.ltrans1.o:(.text+0xf44): undefined reference to `cairo_boilerplate_xmalloc'
ccx6CehJ.ltrans1.o:(.text+0x113a): undefined reference to `cairo_boilerplate_xrealloc'
collect2: error: ld returned 1 exit status
Makefile:589: recipe for target 'cairo-sphinx' failed
make[4]: *** [cairo-sphinx] Error 1
make[4]: Leaving directory '/var/tmp/portage/x11-libs/cairo-1.12.16-r4/work/cairo-1.12.16-abi_x86_64.amd64/util/cairo-sphinx'
Makefile:974: recipe for target 'all-recursive' failed
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory '/var/tmp/portage/x11-libs/cairo-1.12.16-r4/work/cairo-1.12.16-abi_x86_64.amd64/util'
Makefile:756: recipe for target 'all' failed
make[2]: *** [all] Error 2
make[2]: Leaving directory '/var/tmp/portage/x11-libs/cairo-1.12.16-r4/work/cairo-1.12.16-abi_x86_64.amd64/util'
Makefile:895: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/var/tmp/portage/x11-libs/cairo-1.12.16-r4/work/cairo-1.12.16-abi_x86_64.amd64'
Makefile:745: recipe for target 'all' failed |
|
|
Back to top |
|
|
Josef.95 Advocate
Joined: 03 Sep 2007 Posts: 4669 Location: Germany
|
Posted: Sun Nov 30, 2014 10:33 am Post subject: |
|
|
Schau ob die schon genannten Tipps aus Bug 510782 weiterhelfen. |
|
Back to top |
|
|
Jean-Paul Guru
Joined: 13 Apr 2009 Posts: 307
|
Posted: Sun Nov 30, 2014 10:35 am Post subject: |
|
|
Funktioniert hier einwandfrei Quote: | [ebuild R ~] x11-libs/cairo-1.12.16-r3 USE="X glib lto svg (-aqua) -debug -directfb (-drm) (-gallium) (-gles2) -legacy-drivers -opengl -openvg (-qt4) -static-libs -valgrind -xcb -xlib-xcb" 0 kB
[ebuild R ] sys-devel/gcc-4.8.3:4.8 USE="cxx fortran nls nptl openmp sanitize (-altivec) -awt -doc (-fixed-point) -gcj -go -graphite (-hardened) (-libssp) -mudflap (-multilib) (-multislot) -nopie -nossp -objc -objc++ -objc-gc -regression-test -vanilla" |
_________________ ”Everything should be made as simple as possible, but no simpler.” – Albert Einstein |
|
Back to top |
|
|
Klaus Meier Advocate
Joined: 18 Apr 2005 Posts: 2908 Location: Bozen
|
Posted: Sun Nov 30, 2014 11:29 am Post subject: |
|
|
Danke an euch beide. Ja, den Bug hatte ich schon gelesen und die angegebene Lösung, -lto, hatte ich ja auch schon gefunden.
Wenn ich mich noch richtig zurück erinnere, dann ging die r3 (damals noch ohne lto) mit dem gcc-4.9.1 sauber durch. Mit dem gcc-4.9.2 wollte dann auch die r3 nicht. Hatte jetzt auf die r4 gehofft, dass sie das Problem löst. Hab den Beitrag ja in erster Linie geschrieben, um ohne stundenlange emerge Orgien zu sehen, an was es liegt. Und der letzte Satz: Code: | USE="-lto" solves the problem | ist dann ja wohl doch etwas heftig. Nein, er löst das Problem nicht, es ist nur ein quick and dirty fix.
Werde dann mal im Laufe des Tages ausprobieren, was der gcc-4.9.1 dazu sagt. Wenn es mit dem 4.8.3 und dem 4.9.1 sauber durchläuft, dann ist es ein Problem von cairo. Ansonsten eines vom gcc-4.9.2. |
|
Back to top |
|
|
Josef.95 Advocate
Joined: 03 Sep 2007 Posts: 4669 Location: Germany
|
Posted: Sun Nov 30, 2014 12:20 pm Post subject: |
|
|
Hm nee, ich meinte eher den Tipp mit den CFLAGS/CXXFLAGS aus Comment 6 , 8 und 9 |
|
Back to top |
|
|
Jean-Paul Guru
Joined: 13 Apr 2009 Posts: 307
|
Posted: Sun Nov 30, 2014 12:55 pm Post subject: |
|
|
Josef.95 wrote: | Hm nee, ich meinte eher den Tipp mit den CFLAGS/CXXFLAGS aus Comment 6 , 8 und 9 |
Ja, das schein das Problem zu lösen.
Siehe auch hier https://code.google.com/p/chromium/issues/detail?id=360604
Vorausgesetzt du hast genug Speicher.
Quote: | >>> Running pre-merge checks for x11-libs/cairo-1.12.16-r3
* Checking for sufficient memory to build cairo with USE=lto
* Checking for at least 768 MiB RAM ... [ ok ] |
_________________ ”Everything should be made as simple as possible, but no simpler.” – Albert Einstein |
|
Back to top |
|
|
Klaus Meier Advocate
Joined: 18 Apr 2005 Posts: 2908 Location: Bozen
|
Posted: Sun Nov 30, 2014 4:16 pm Post subject: |
|
|
Bingo. lto zu entfernen ist peng. -ffat-lto-objects hat die Sache gelöst.
Danke Josef für die Hinweise auf 6, 8 und 9.
Ist also kein Problem vom gcc oder von cairo. Ist eine Sache der default-flags. |
|
Back to top |
|
|
|