Summary: | www-client/chromium-11.0.696.25: fails to build with gcc 4.6 | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Vladimir Smirnov (RETIRED) <civil> |
Component: | Current packages | Assignee: | Chromium Project <chromium> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | chris, cruzki123, dberkholz, facorread, gbugs, kevin.bowling, nelchael, olfway, ormaaj, taaroa, tdalman, tetromino, ulenrich, yellowhat46 |
Priority: | Normal | Keywords: | InOverlay |
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
See Also: | http://code.google.com/p/chromium/issues/detail?id=80071 | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | |||
Bug Blocks: | 346809 | ||
Attachments: |
chromium-gcc46.patch
chromium-gcc46_p2.patch chromium-gcc46-summ.patch chromium-12.0.733.0-r1.ebuild build.log chromium-12.0.742.5 chromium-12.0.742.12-r1.ebuild gcc-4.6 I'm successfully using with www-client/chromium-11.0.696.65 gcc-4.6 patch for www-client/chromium-12.0.742.21 chromium-13.0.772.0-gcc46.patch |
Description
Vladimir Smirnov (RETIRED)
2011-03-31 11:22:28 UTC
Created attachment 267967 [details, diff]
chromium-gcc46.patch
Vladimir, could you please submit the patches upstream? See http://www.chromium.org/developers/contributing-code for more info. I'd be glad to help you getting those patches upstream, feel free to contact me. Added to gcc-porting overlay. Created attachment 268341 [details, diff]
chromium-gcc46_p2.patch
In overlay still 2 includes are missing, at least for chromium-11.0.696.28-r1
Also true with chromium-11.0.696.34 Confirmed here too. The attached patch needs to be added to gcc4.6.patch in the overlay. *** Bug 362905 has been marked as a duplicate of this bug. *** Created attachment 270693 [details, diff]
chromium-gcc46-summ.patch
Previous patch does not work. I'm attached my patch, working on a version www-client/chromium-12.0.733.0 and ebuild
Created attachment 270695 [details]
chromium-12.0.733.0-r1.ebuild
ebuild for chromium-gcc46-summ.patch
(In reply to comment #8) > Previous patch does not work. I'm attached my patch, working on a version > www-client/chromium-12.0.733.0 and ebuild Please submit patches upstream and not here. It is not maintainable to apply them on the Gentoo side. Does it work against 12.0.742.5? Thanks The patch seems to give me this error against 12.0.742.5: media/filters/audio_file_reader.cc: In member function ‘bool media::AudioFileReader::Open()’: media/filters/audio_file_reader.cc:74:26: error: ‘CODEC_TYPE_AUDIO’ was not declared in this scope make: *** [out/Release/obj.target/media/media/filters/audio_file_reader.o] Errore 1 make: *** Attesa dei processi non terminati.... Created attachment 271031 [details]
build.log chromium-12.0.742.5
Same for www-client/chromium-11.0.696.57. Created attachment 271975 [details]
chromium-12.0.742.12-r1.ebuild
Build good with patch chromium-gcc46-summ.patch
Error with 12.0.742.16 and gcc46 patch i686-pc-linux-gnu-g++ '-DNO_HEAPCHECKER' '-DCHROMIUM_BUILD' '-DENABLE_REMOTING=1' '-DUSE_PROPRIETARY_CODECS' '-DENABLE_GPU=1' '-DENABLE_EGLIMAGE=1' '-DHAVE_XINPUT2' '-D__STDC_CONSTANT_MACROS' '-DUSE_SYSTEM_VPX' '-D__OMX_EXPORTS' '-D__STDC_FORMAT_MACROS' '-DNDEBUG' '-DNVALGRIND' '-DDYNAMIC_ANNOTATIONS_ENABLED=0' -I. -Iout/Release/obj/gen/ffmpeg -Ithird_party/openmax/il -Iout/Release/obj/gen/openmax -pthread -fno-exceptions -Wall -Wno-unused-parameter -Wno-missing-field-initializers -D_FILE_OFFSET_BITS=64 -fvisibility=hidden -pipe -m32 -mmmx -fno-strict-aliasing -pthread -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng14 -I/usr/include/libdrm -O2 -fno-ident -fdata-sections -ffunction-sections -fno-rtti -fno-threadsafe-statics -fvisibility-inlines-hidden -MMD -MF out/Release/.deps/out/Release/obj.target/media/media/filters/audio_renderer_algorithm_base.o.d.raw -march=native -O2 -pipe -fomit-frame-pointer -c -o out/Release/obj.target/media/media/filters/audio_renderer_algorithm_base.o media/filters/audio_renderer_algorithm_base.cc media/filters/audio_file_reader.cc: In member function ‘bool media::AudioFileReader::Open()’: media/filters/audio_file_reader.cc:74:26: error: ‘CODEC_TYPE_AUDIO’ was not declared in this scope make: *** [out/Release/obj.target/media/media/filters/audio_file_reader.o] Errore 1 make: *** Attesa dei processi non terminati.... emake failed (In reply to comment #16) > Error with 12.0.742.16 and gcc46 patch Worked here (the patch) with 12.0.742.21. Created attachment 272711 [details, diff]
gcc-4.6 I'm successfully using with www-client/chromium-11.0.696.65
Created attachment 272905 [details, diff]
gcc-4.6 patch for www-client/chromium-12.0.742.21
Using this patch chromium-12-gcc46.patch against www-client/chromium-12.0.742.21 , I get this error: _FORMAT_MACROS' '-DNDEBUG' '-DNVALGRIND' '-DDYNAMIC_ANNOTATIONS_ENABLED=0' -I. -Iout/Release/obj/gen/ffmpeg -Ithird_party/openmax/il -Iout/Release/obj/gen/openmax -pthread -fno-exceptions -Wall -Wno-unused-parameter -Wno-missing-field-initializers -D_FILE_OFFSET_BITS=64 -fvisibility=hidden -pipe -m32 -mmmx -fno-strict-aliasing -pthread -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng14 -I/usr/include/libdrm -O2 -fno-ident -fdata-sections -ffunction-sections -fno-rtti -fno-threadsafe-statics -fvisibility-inlines-hidden -MMD -MF out/Release/.deps/out/Release/obj.target/media/media/filters/audio_renderer_algorithm_default.o.d.raw -march=native -O2 -pipe -fomit-frame-pointer -c -o out/Release/obj.target/media/media/filters/audio_renderer_algorithm_default.o media/filters/audio_renderer_algorithm_default.cc media/filters/audio_file_reader.cc: In member function ‘bool media::AudioFileReader::Open()’: media/filters/audio_file_reader.cc:74:26: error: ‘CODEC_TYPE_AUDIO’ was not declared in this scope make: *** [out/Release/obj.target/media/media/filters/audio_file_reader.o] Errore 1 make: *** Attesa dei processi non terminati.... emake failed *** Bug 366657 has been marked as a duplicate of this bug. *** Same error with www-client/chromium-13.0.761.0 and chromium-12-gcc46.patch. Ideas? Can be a libav-9999 related error? media/filters/audio_file_reader.cc: In member function ‘bool media::AudioFileReader::Open()’: media/filters/audio_file_reader.cc:74:26: error: ‘CODEC_TYPE_AUDIO’ was not declared in this scope make: *** [out/Release/obj.target/media/media/filters/audio_file_reader.o] Errore 1 make: *** Attesa dei processi non terminati.... emake failed Has someone emerged successful chromium 12 or 13 series against gcc-4.6? Is someone using libav-9999? Thanks (In reply to comment #23) > Has someone emerged successful chromium 12 or 13 series against gcc-4.6? > Is someone using libav-9999? Could you rather use forums.gentoo.org for discussions? This bug is super-clear: chromium does not compile with gcc-4.6, there are patches but nobody has submitted them to the right place, which is upstream. Please read http://www.chromium.org/developers/contributing-code . Just in case: attaching patches to upstream bug reports won't work either. Please read the doc, the right site is http://codereview.chromium.org As I suspected chromium will not compile against libav-9999, downgrading to 0.7_pre20110327 worked. I can confirm that patch for gcc-4.6 works for chromium-13.0.761.0. Thanks to all Error applying patch with chromium-13.0.767.1 Created attachment 274707 [details, diff]
chromium-13.0.772.0-gcc46.patch
Not much to explain here. Chromium-13 builds now. I'm not going to bother figuring out why there are ebuilds attached to this bug; I just ignored them.
Chromium 12.0.742.68 now builds with GCC-4.6 No for chromium-12.0.742.91, the long known missing standard include case: "size_t" ---------- In file included from chrome/browser/search_engines/template_url_prepopulate_data.cc:5:0: ./chrome/browser/search_engines/template_url_prepopulate_data.h:30:29: Fehler: »size_t« wurde nicht deklariert make: *** [out/Release/obj.target/browser/chrome/browser/search_engines/template_url_prepopulate_data.o] Fehler 1 emake failed * ERROR: www-client/chromium-12.0.742.91 failed But using this patch http://bugs.gentoo.org/attachment.cgi?id=272905 then chromium-12.0.742.91 compiles through without error. This patch exists always a month now. Nobody cares about including it into the official gentoo ebuild? (In reply to comment #30) > This patch exists always a month now. Nobody cares about including it into the > official gentoo ebuild? Please read http://bugs.gentoo.org/show_bug.cgi?id=361461#c2 and http://bugs.gentoo.org/show_bug.cgi?id=361461#c10 . Again, _no_ patch attached to _this_ bug will be applied on the Gentoo side. The right course of action is to submit patches upstream - recently a few patches by another Gentoo developer, Christoph Mende (angelos) have landed, and I've helped him with the upstreaming. If anyone else thinks some more patches are needed, please read http://www.chromium.org/developers/contributing-code . Thank you for your interest in getting the package to build with gcc-4.6. (In reply to comment #31) > Please read http://bugs.gentoo.org/show_bug.cgi?id=361461#c2 and > http://bugs.gentoo.org/show_bug.cgi?id=361461#c10 . Again, _no_ patch attached > to _this_ bug will be applied on the Gentoo side. The right course of action is > to submit patches upstream - recently a few patches by another Gentoo > developer, Christoph Mende (angelos) have landed, and I've helped him with the > upstreaming. > > If anyone else thinks some more patches are needed, please read > http://www.chromium.org/developers/contributing-code . Paweł, IMHO your response is unreasonable. Firs of all, you are asking Gentoo bugzilla users to go through a complicated process involving signing a contributor agreement and learning how to use Chromium's strange scm and code review setup (that is not used by any other project) just to get a trivial patch adding some #include statements committed. Second, *you are upstream*. You are listed in Chromium's AUTHORS file, you are experienced with Chromium's tools and code review procedures, you have already signed all agreements, and (if I understand it right) you have commit rights. Why are you asking Gentoo users to learn how to become a Chromium developer when you, already a Chromium developer, could simply commit the patch? (In reply to comment #32) > Second, *you are upstream*. You are listed in Chromium's AUTHORS file, you are > experienced with Chromium's tools and code review procedures, you have already > signed all agreements, and (if I understand it right) you have commit rights. > Why are you asking Gentoo users to learn how to become a Chromium developer > when you, already a Chromium developer, could simply commit the patch? First thing to note is that I just don't have resources to test with gcc-4.6 right now. A committer should test the patch he's submitting for review, and the reviewers may request changes that would have to be tested again with gcc-4.6. And then, to make tcmalloc compile with gcc-4.6, we don't just apply the two-line patch submitted here. Instead, the entire tcmalloc directory has to be updated to the upstream (google-perftools) release, and local patches have to be merged: http://codereview.chromium.org/7050034/ . I wonder what the lacking resource is. It isn't time if you let the compiles run in the background. I'd guess you run gentoo so it's a simple emerge and gcc-config away, and it's not like you need to rebuild your entire system with 4.6. If you are indeed upstream, these patches are fairly critical for the likes of Fedora 15 and soon other distros, so why drag your feet just because gcc 4.6 is masked for now in gentoo? I wonder why the complete tcmalloc-subproject needs to be updated, if the short-term solution would be just a two-liner? I bet that noone here doubts that the new version needs to be integrated sooner or later, but for the sake of getting this thing finally through, it should be enough to use the patch we are proposing here... (In reply to comment #33) > (In reply to comment #32) > > Second, *you are upstream*. You are listed in Chromium's AUTHORS file, you are > > experienced with Chromium's tools and code review procedures, you have already > > signed all agreements, and (if I understand it right) you have commit rights. > > Why are you asking Gentoo users to learn how to become a Chromium developer > > when you, already a Chromium developer, could simply commit the patch? > > First thing to note is that I just don't have resources to test with gcc-4.6 > right now. A committer should test the patch he's submitting for review, and > the reviewers may request changes that would have to be tested again with > gcc-4.6. > > And then, to make tcmalloc compile with gcc-4.6, we don't just apply the > two-line patch submitted here. Instead, the entire tcmalloc directory has to be > updated to the upstream (google-perftools) release, and local patches have to > be merged: http://codereview.chromium.org/7050034/ . Patches here are hard to maintain, they'll almost certainly break in next version bump. I don't have enough time to commit fix to chromium repo in a near future. Don't want to beat a dead horse, but besides failing to build the latest chromium-14.0.794.0 I can no longer build the patched version I'm currently running and previously built, all fail with: ========================================================== x86_64-pc-linux-gnu-g++ '-DNO_HEAPCHECKER' '-DCHROMIUM_BUILD' '-DENABLE_REMOTING=1' '-DENABLE_P2P_APIS=1' '-DENABLE_GPU=1' '-DENABLE_EGLIMAGE=1' '-DNDEBUG' '-DNVALGRIND' '-DDYNAMIC_ANNOTATIONS_ENABLED=0' -Ibase/allocator -Ithird_party/tcmalloc/chromium/src/base -Ithird_party/tcmalloc/chromium/src -I. -pthread -fno-exceptions -Wno-unused-parameter -Wno-missing-field-initializers -D_FILE_OFFSET_BITS=64 -pipe -fPIC -fno-strict-aliasing -DNO_HEAP_CHECK -Wno-deprecated -Wno-format -O2 -fno-ident -fdata-sections -ffunction-sections -fno-rtti -fno-threadsafe-statics -fvisibility-inlines-hidden -MMD -MF out/Release/.deps/out/Release/obj.target/allocator/third_party/tcmalloc/chromium/src/tcmalloc.o.d.raw -O2 -march=native -fomit-frame-pointer -pipe -floop-interchange -floop-strip-mine -floop-block -c -o out/Release/obj.target/allocator/third_party/tcmalloc/chromium/src/tcmalloc.o third_party/tcmalloc/chromium/src/tcmalloc.cc third_party/tcmalloc/chromium/src/tcmalloc.cc:379:36: error: conflicting declaration ‘void* (* __malloc_hook)(size_t, const void*)’ /usr/include/malloc.h:176:39: error: ‘__malloc_hook’ has a previous declaration as ‘void* (* volatile __malloc_hook)(size_t, const void*)’ third_party/tcmalloc/chromium/src/tcmalloc.cc:387:47: error: conflicting declaration ‘void* (* __realloc_hook)(void*, size_t, const void*)’ /usr/include/malloc.h:179:39: error: ‘__realloc_hook’ has a previous declaration as ‘void* (* volatile __realloc_hook)(void*, size_t, const void*)’ third_party/tcmalloc/chromium/src/tcmalloc.cc:393:50: error: conflicting declaration ‘void (* __free_hook)(void*, const void*)’ /usr/include/malloc.h:173:38: error: ‘__free_hook’ has a previous declaration as ‘void (* volatile __free_hook)(void*, const void*)’ third_party/tcmalloc/chromium/src/tcmalloc.cc:1587:54: error: conflicting declaration ‘void* (* __memalign_hook)(size_t, size_t, const void*)’ /usr/include/malloc.h:183:39: error: ‘__memalign_hook’ has a previous declaration as ‘void* (* volatile __memalign_hook)(size_t, size_t, const void*)’ third_party/tcmalloc/chromium/src/tcmalloc.cc: In function ‘void PrintStats(int)’: third_party/tcmalloc/chromium/src/tcmalloc.cc:541:47: warning: ignoring return value of ‘ssize_t write(int, const void*, size_t)’, declared with attribute warn_unused_result [-Wunused-result] third_party/tcmalloc/chromium/src/tcmalloc.cc: In function ‘void ReportLargeAlloc(Length, void*)’: third_party/tcmalloc/chromium/src/tcmalloc.cc:919:47: warning: ignoring return value of ‘ssize_t write(int, const void*, size_t)’, declared with attribute warn_unused_result [-Wunused-result] make: *** [out/Release/obj.target/allocator/third_party/tcmalloc/chromium/src/tcmalloc.o] Error 1 emake failed ========================================================== Oops, comment 37 was the error for chromium-14.0.794.0 and may be a different bug. The following is for chromium-13.0.772.0-r1 with the gcc46.patch the previously built (I'm running it), but it no longer builds: ============================== x86_64-pc-linux-gnu-g++ '-DNO_HEAPCHECKER' '-DDISABLE_NACL' '-DCHROMIUM_BUILD' '-DENABLE_REMOTING=1' '-DENABLE_P2P_APIS=1' '-DUSE_PROPRIETARY_CODECS' '-DENABLE_GPU=1' '-DENABLE_EGLIMAGE=1' '-DNDEBUG' '-DNVALGRIND' '-DDYNAMIC_ANNOTATIONS_ENABLED=0' -Ibase/allocator -Ithird_party/tcmalloc/chromium/src/base -Ithird_party/tcmalloc/chromium/src -I. -pthread -fno-exceptions -Wno-unused-parameter -Wno-missing-field-initializers -D_FILE_OFFSET_BITS=64 -pipe -fPIC -fno-strict-aliasing -DNO_HEAP_CHECK -Wno-deprecated -Wno-format -O2 -fno-ident -fdata-sections -ffunction-sections -fno-rtti -fno-threadsafe-statics -fvisibility-inlines-hidden -MMD -MF out/Release/.deps/out/Release/obj.target/allocator/third_party/tcmalloc/chromium/src/base/vdso_support.o.d.raw -O2 -march=native -fomit-frame-pointer -pipe -floop-interchange -floop-strip-mine -floop-block -c -o out/Release/obj.target/allocator/third_party/tcmalloc/chromium/src/base/vdso_support.o third_party/tcmalloc/chromium/src/base/vdso_support.cc third_party/tcmalloc/chromium/src/base/vdso_support.cc: In member function ‘void base::VDSOSupport::ElfMemImage::Init(const void*)’: third_party/tcmalloc/chromium/src/base/vdso_support.cc:264:3: error: ‘ptrdiff_t’ was not declared in this scope third_party/tcmalloc/chromium/src/base/vdso_support.cc:264:3: note: suggested alternatives: /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.0/include/g++-v4/x86_64-pc-linux-gnu/bits/c++config.h:156:28: note: ‘std::ptrdiff_t’ /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.0/include/g++-v4/x86_64-pc-linux-gnu/bits/c++config.h:156:28: note: ‘std::ptrdiff_t’ third_party/tcmalloc/chromium/src/base/vdso_support.cc:264:13: error: expected ‘;’ before ‘relocation’ third_party/tcmalloc/chromium/src/base/vdso_support.cc:268:37: error: ‘relocation’ was not declared in this scope make: *** [out/Release/obj.target/allocator/third_party/tcmalloc/chromium/src/base/vdso_support.o] Error 1 emake failed ============================== Not sure what has changed that causes it to no longer build. (In reply to comment #37) > Don't want to beat a dead horse, but besides failing to build the latest > chromium-14.0.794.0 I can no longer build the patched version I'm currently > running and previously built, all fail with: > ========================================================== > third_party/tcmalloc/chromium/src/tcmalloc.cc:379:36: error: conflicting > declaration ‘void* (* __malloc_hook)(size_t, const void*)’ > /usr/include/malloc.h:176:39: error: ‘__malloc_hook’ has a previous declaration > as ‘void* (* volatile __malloc_hook)(size_t, const void*)’ This seems to be a different error. Please file a separate bug, and make sure to include emerge --info. /usr/include/malloc.h is provided by glibc. We have a report (https://bugs.gentoo.org/show_bug.cgi?id=355181#c7) that chromium-14.0.803.0 compiles fine with gcc-4.6. I'll keep this bug open until 14.x moves into ~arch (which should happen within a few weeks). If you hit problems with that version, please make sure to report them here. Just tested here: www-client/chromium-13.0.782.109 fails with gcc-4.6 www-client/chromium-14.0.835.18 is fine with gcc-4.6 So waiting for 14.x to hit ~arch. chromium-14.x is now in ~arch, closing *** Bug 382001 has been marked as a duplicate of this bug. *** |