Summary: | dev-db/mysql++ fails to build with gcc 4.7 | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Diego Elio Pettenò (RETIRED) <flameeyes> |
Component: | New packages | Assignee: | Gentoo Linux MySQL bugs team <mysql-bugs> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | esigra, guido-genbugs |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
URL: | https://tinderboxlogs.s3.amazonaws.com/tbamd64.excelsior.flameeyes.eu/dev-db%3Amysql%2B%2B-3.0.9%3A20120619-025121.html | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | |||
Bug Blocks: | 346809, 390247 | ||
Attachments: |
Proposed patch to the mysql++ sources
Proposed patch to the ebuild Patch trhat uses cstddef for size_t |
Description
Diego Elio Pettenò (RETIRED)
![]() *** Bug 425506 has been marked as a duplicate of this bug. *** Created attachment 318022 [details, diff]
Proposed patch to the mysql++ sources
Created attachment 318024 [details, diff]
Proposed patch to the ebuild
With the two attached patches, the packages builds fine for me. BTW, this bug does not appear to be specific to GCC 4.7, I'm using 4.6 and I'm still seeing it. Actually, from gcc's docs, the correct include should be <cstddef> Created attachment 326844 [details, diff]
Patch trhat uses cstddef for size_t
I'm alos seeing this bug after the stable amd64 compiler update to gcc-4.6.3. Since 4.6.3 is the default stable gcc compiler version now I think this issue needs to be resolved or otherwise the dev-db/mysql++-3.0.9 ebuild in the tree will be useless. ===== /var/tmp/portage/dev-db/mysql++-3.0.9/work/mysql++-3.0.9/bk-deps x86_64-pc-linux-gnu-g++ -c -o mysqlpp_sql_buffer.o -I. -fPIC -DPIC -pthread -I/usr/include/mysql -march=core2 -mtune=core2 -O2 -pipe -msse4.1 ./lib/sql_buffer.cpp In file included from ./lib/sql_buffer.h:31:0, from ./lib/sql_buffer.cpp:26: ./lib/refcounted.h:258:2: error: 'size_t' does not name a type ./lib/refcounted.h: In constructor 'mysqlpp::RefCountedPointer<T, Destroyer>::RefCountedPointer()': ./lib/refcounted.h:89:2: error: class 'mysqlpp::RefCountedPointer<T, Destroyer>' does not have any field named 'refs_' ./lib/refcounted.h: In constructor 'mysqlpp::RefCountedPointer<T, Destroyer>::RefCountedPointer(T*)': ./lib/refcounted.h:100:2: error: class 'mysqlpp::RefCountedPointer<T, Destroyer>' does not have any field named 'refs_' ./lib/refcounted.h:104:4: error: 'refs_' was not declared in this scope ./lib/refcounted.h:104:16: error: expected type-specifier before 'size_t' ./lib/refcounted.h:104:16: error: expected ';' before 'size_t' ./lib/refcounted.h: In constructor 'mysqlpp::RefCountedPointer<T, Destroyer>::RefCountedPointer(const ThisType&)': ./lib/refcounted.h:112:2: error: class 'mysqlpp::RefCountedPointer<T, Destroyer>' does not have any field named 'refs_' ./lib/refcounted.h:115:8: error: 'refs_' was not declared in this scope ./lib/refcounted.h: In destructor 'mysqlpp::RefCountedPointer<T, Destroyer>::~RefCountedPointer()': ./lib/refcounted.h:125:7: error: 'refs_' was not declared in this scope ./lib/refcounted.h: In member function 'void mysqlpp::RefCountedPointer<T, Destroyer>::swap(mysqlpp::RefCountedPointer<T, Destroyer>::ThisType&)': ./lib/refcounted.h:246:13: error: 'refs_' was not declared in this scope make: *** [mysqlpp_sql_buffer.o] Error 1 make: *** Waiting for unfinished jobs.... emake failed * ERROR: dev-db/mysql++-3.0.9 failed (compile phase): * unable to make * * Call stack: * ebuild.sh, line 93: Called src_compile * environment, line 2044: Called die * The specific snippet of code: * emake || die "unable to make" ==== This is really a duplicate of bug 378921 and is not limited to gcc 4.6 or 4.7. It should be about gcc 4.3+ I've attached a fixed build and patch to bug 378921 which includes fixes to five open mysql++ bugs. InCVS. Thanks to Brian Evans. |