View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0003771 | ardour | bugs | public | 2011-02-13 16:38 | 2020-04-19 20:15 |
Reporter | oget | Assigned To | paul | ||
Priority | normal | Severity | minor | Reproducibility | always |
Status | closed | Resolution | fixed | ||
Product Version | 2.8.11 | ||||
Target Version | 2.8.12 | ||||
Summary | 0003771: [PATCH] Compilation fixes against gcc-4.6 | ||||
Description | Hi, During our mass rebuild process to update Fedora to use gcc-4.6, ardour failed to build from source. There are 3 issues that need attention: - libs/rubberband/rubberband/RubberBandStretcher.h needs an #include <cstddef> to have size_t properly defined. - libs/ardour/enums.cc needs a namespace fix, otherwise we get an error during the linking phase: libs/ardour/libardour.so: undefined reference to `ARDOUR::setup_enum_writer()' - libs/surfaces/wiimote/wiimote.cc needs a fix in initialization of a struct. class temporaries are no longer allowed in gcc-4.6. The error we got is libs/surfaces/wiimote/wiimote.cc:180:45: error: taking address of temporary [-fpermissive] Here are some upstream references for this last change http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=164704 http://gcc.gnu.org/ml/gcc-patches/2010-09/msg02144.html The attached patch resolves all these issues. | ||||
Tags | No tags attached. | ||||
2011-02-13 16:38
|
ardour-gcc46.patch (1,568 bytes)
diff -rupN ardour-2.8.11.old/libs/ardour/enums.cc ardour-2.8.11/libs/ardour/enums.cc --- ardour-2.8.11.old/libs/ardour/enums.cc 2010-04-20 13:28:37.000000000 -0400 +++ ardour-2.8.11/libs/ardour/enums.cc 2011-02-13 11:23:02.000000000 -0500 @@ -31,7 +31,8 @@ using namespace std; using namespace PBD; -using namespace ARDOUR; +namespace ARDOUR +{ void setup_enum_writer () @@ -362,3 +363,5 @@ setup_enum_writer () REGISTER (_Track_FreezeState); } + +} diff -rupN ardour-2.8.11.old/libs/rubberband/rubberband/RubberBandStretcher.h ardour-2.8.11/libs/rubberband/rubberband/RubberBandStretcher.h --- ardour-2.8.11.old/libs/rubberband/rubberband/RubberBandStretcher.h 2009-03-26 10:25:40.000000000 -0400 +++ ardour-2.8.11/libs/rubberband/rubberband/RubberBandStretcher.h 2011-02-09 21:41:04.000000000 -0500 @@ -19,6 +19,7 @@ #define RUBBERBAND_API_MAJOR_VERSION 2 #define RUBBERBAND_API_MINOR_VERSION 0 +#include <cstddef> #include <vector> /** diff -rupN ardour-2.8.11.old/libs/surfaces/wiimote/wiimote.cc ardour-2.8.11/libs/surfaces/wiimote/wiimote.cc --- ardour-2.8.11.old/libs/surfaces/wiimote/wiimote.cc 2009-02-24 07:38:19.000000000 -0500 +++ ardour-2.8.11/libs/surfaces/wiimote/wiimote.cc 2011-02-13 11:23:24.000000000 -0500 @@ -177,7 +177,7 @@ wiimote_discovery: std::cerr << "Wiimote: discovering, press 1+2" << std::endl; while (!wiimote_handle && !main_thread_quit) { - bdaddr = *BDADDR_ANY; + bdaddr = (bdaddr_t) {{0, 0, 0, 0, 0, 0}}; callback_thread_registered_for_ardour = false; wiimote_handle = cwiid_open(&bdaddr, 0); |
|
Thanks. Applied to 3.0 SVN 8835. |
|
Please apply this patches to 2.0-ongoing. I tested it and it compiles with gcc 4.6 and seems to work. I additionally added the line #include <cstddef> to libs/sigc++2/sigc++/signal_base.h |
|
applied to 2.0-ongoing. |
2011-05-14 12:04
|
signal_base.patch (355 bytes)
--- 2.0-ongoing/libs/sigc++2/sigc++/signal_base.h.orig 2011-05-14 13:58:23.365742291 +0200 +++ 2.0-ongoing/libs/sigc++2/sigc++/signal_base.h 2011-05-14 13:58:40.849074889 +0200 @@ -22,6 +22,7 @@ #define _SIGC_SIGNAL_BASE_H_ #include <list> +#include <cstddef> #include <sigc++config.h> #include <sigc++/type_traits.h> #include <sigc++/trackable.h> |
|
Added an additional patch for signal_base.h |
|
The change to libs/ardour/enums.cc in the patch as applied to r9505 broke the build of A2 for me on Ubuntu 10.04. scons says: libs/ardour/libardour.so: undefined reference to `setup_enum_writer()' collect2: ld returned 1 exit status scons: *** [gtk2_ardour/ardour-2.8.11] Error 1 scons: building terminated because of errors. gcc --version says: gcc (Ubuntu 4.4.3-4ubuntu5) 4.4.3 Reverting just the changes to libs/ardour/enums.cc gets 2.0-ongoing building again for me. I don't know whether this breaks compilation with gcc 4.6, but the corresponding commit in A3 (r8835) doesn't have the change to libs/ardour/enums.cc, so I'm guessing the changes are probably not required. |
|
I ran into the same problem, also on Ubuntu 10.04. I changed libs/ardour/enums.cc back to the version in r8152 (!), the build completed without the error. |
|
Ummh... If I revert the change to before r9505 in libs/ardour/enums.cc and try to compile with gcc-4.6 I see the same error: libs/ardour/libardour.so: undefined reference to `ARDOUR::setup_enum_writer()' So we could have a problem here... |
|
Issue has been closed automatically, by Trigger Close Plugin. Feel free to re-open with additional information if you think the issue is not resolved. |
Date Modified | Username | Field | Change |
---|---|---|---|
2011-02-13 16:38 | oget | New Issue | |
2011-02-13 16:38 | oget | File Added: ardour-gcc46.patch | |
2011-02-13 18:47 | cth103 | Note Added: 0010083 | |
2011-02-13 18:47 | cth103 | cost | => 0.00 |
2011-02-13 18:47 | cth103 | Target Version | => 2.8.12 |
2011-02-13 18:48 | cth103 | Summary | compilation fixes against gcc-4.6 => [PATCH] Compilation fixes against gcc-4.6 |
2011-02-13 18:48 | cth103 | Status | new => acknowledged |
2011-02-14 03:39 | paul | Status | acknowledged => resolved |
2011-02-14 03:39 | paul | Resolution | open => fixed |
2011-02-14 03:39 | paul | Assigned To | => paul |
2011-05-13 16:33 | bigstumpi | Note Added: 0010737 | |
2011-05-13 16:47 | paul | Note Added: 0010738 | |
2011-05-14 12:04 | bigstumpi | File Added: signal_base.patch | |
2011-05-14 12:05 | bigstumpi | Note Added: 0010742 | |
2011-05-16 15:49 | colinf | Note Added: 0010750 | |
2011-05-17 01:46 | Musaeus | Note Added: 0010764 | |
2011-05-17 07:30 | bigstumpi | Note Added: 0010766 | |
2020-04-19 20:15 | system | Note Added: 0022401 | |
2020-04-19 20:15 | system | Status | resolved => closed |