Hi.
I once got a building error on gtk2_ardour/ardour-3.0 due to undefined references and guessed it was transient, but
I still encounter the issue a few days later on. I joined a rough log of the building process on a fresh, up-to-date checkout of the 3.0 branch. Is it I miss some libs or a bug? I guess I got everything mentionned on http://ardour.org/building, but oversight may be lurking here
$ svn up À la révision 5296. $ scons [...] g++ -o gtk2_ardour/ardour-3.0 -O3 -fomit-frame-pointer -ffast-math -fstrength-reduce -pipe -DARCH_X86 -mmmx -march=i686 -msse -mfpmath=sse -DUSE_XMMINTRIN -DBUILD_SSE_OPTIMIZATIONS -Wl,--export-dynamic -pthread gtk2_ardour/about.o gtk2_ardour/actions.o gtk2_ardour/add_midi_cc_track_dialog.o gtk2_ardour/add_route_dialog.o gtk2_ardour/analysis_window.o gtk2_ardour/ardour_dialog.o gtk2_ardour/ardour_ui.o gtk2_ardour/ardour_ui2.o gtk2_ardour/ardour_ui_dependents.o gtk2_ardour/ardour_ui_dialogs.o gtk2_ardour/ardour_ui_ed.o gtk2_ardour/ardour_ui_mixer.o gtk2_ardour/ardour_ui_options.o gtk2_ardour/audio_clock.o gtk2_ardour/audio_region_editor.o gtk2_ardour/audio_region_view.o gtk2_ardour/audio_streamview.o gtk2_ardour/audio_time_axis.o gtk2_ardour/automation_controller.o gtk2_ardour/automation_line.o gtk2_ardour/automation_region_view.o gtk2_ardour/automation_streamview.o gtk2_ardour/automation_time_axis.o gtk2_ardour/axis_view.o gtk2_ardour/bundle_manager.o gtk2_ardour/canvas-flag.o gtk2_ardour/canvas-note-event.o gtk2_ardour/canvas-note.o gtk2_ardour/canvas-program-change.o gtk2_ardour/canvas-simpleline.o gtk2_ardour/canvas-simplerect.o gtk2_ardour/canvas-sysex.o gtk2_ardour/canvas-waveview.o gtk2_ardour/control_point.o gtk2_ardour/control_point_dialog.o gtk2_ardour/crossfade_edit.o gtk2_ardour/crossfade_view.o gtk2_ardour/curvetest.o gtk2_ardour/diamond.o gtk2_ardour/editing.o gtk2_ardour/editor.o gtk2_ardour/editor_actions.o gtk2_ardour/editor_audio_import.o gtk2_ardour/editor_audiotrack.o gtk2_ardour/editor_canvas.o gtk2_ardour/editor_canvas_events.o gtk2_ardour/editor_cursors.o gtk2_ardour/editor_drag.o gtk2_ardour/editor_edit_groups.o gtk2_ardour/editor_export_audio.o gtk2_ardour/editor_hscroller.o gtk2_ardour/editor_keyboard.o gtk2_ardour/editor_keys.o gtk2_ardour/editor_markers.o gtk2_ardour/editor_mixer.o gtk2_ardour/editor_mouse.o gtk2_ardour/editor_nudge.o gtk2_ardour/editor_ops.o gtk2_ardour/editor_region_list.o gtk2_ardour/editor_route_list.o gtk2_ardour/editor_rulers.o gtk2_ardour/editor_scrub.o gtk2_ardour/editor_selection.o gtk2_ardour/editor_selection_list.o gtk2_ardour/editor_summary.o gtk2_ardour/editor_tempodisplay.o gtk2_ardour/editor_timefx.o gtk2_ardour/engine_dialog.o gtk2_ardour/enums.o gtk2_ardour/export_channel_selector.o gtk2_ardour/export_dialog.o gtk2_ardour/export_file_notebook.o gtk2_ardour/export_filename_selector.o gtk2_ardour/export_format_dialog.o gtk2_ardour/export_format_selector.o gtk2_ardour/export_preset_selector.o gtk2_ardour/export_timespan_selector.o gtk2_ardour/fft.o gtk2_ardour/fft_graph.o gtk2_ardour/fft_result.o gtk2_ardour/gain_meter.o gtk2_ardour/generic_pluginui.o gtk2_ardour/ghostregion.o gtk2_ardour/global_port_matrix.o gtk2_ardour/gtk-custom-hruler.o gtk2_ardour/gtk-custom-ruler.o gtk2_ardour/io_selector.o gtk2_ardour/keyboard.o gtk2_ardour/keyeditor.o gtk2_ardour/latency_gui.o gtk2_ardour/level_meter.o gtk2_ardour/lineset.o gtk2_ardour/location_ui.o gtk2_ardour/main.o gtk2_ardour/marker.o gtk2_ardour/midi_channel_selector.o gtk2_ardour/midi_port_dialog.o gtk2_ardour/midi_region_view.o gtk2_ardour/midi_scroomer.o gtk2_ardour/midi_streamview.o gtk2_ardour/midi_time_axis.o gtk2_ardour/mixer_strip.o gtk2_ardour/mixer_ui.o gtk2_ardour/nag.o gtk2_ardour/option_editor.o gtk2_ardour/opts.o gtk2_ardour/panner.o gtk2_ardour/panner2d.o gtk2_ardour/panner_ui.o gtk2_ardour/piano_roll_header.o gtk2_ardour/playlist_selector.o gtk2_ardour/plugin_eq_gui.o gtk2_ardour/plugin_selector.o gtk2_ardour/plugin_ui.o gtk2_ardour/port_group.o gtk2_ardour/port_matrix.o gtk2_ardour/port_matrix_body.o gtk2_ardour/port_matrix_column_labels.o gtk2_ardour/port_matrix_component.o gtk2_ardour/port_matrix_grid.o gtk2_ardour/port_matrix_labels.o gtk2_ardour/port_matrix_row_labels.o gtk2_ardour/processor_box.o gtk2_ardour/prompter.o gtk2_ardour/public_editor.o gtk2_ardour/rc_option_editor.o gtk2_ardour/region_gain_line.o gtk2_ardour/region_selection.o gtk2_ardour/region_view.o gtk2_ardour/return_ui.o gtk2_ardour/rhythm_ferret.o gtk2_ardour/route_params_ui.o gtk2_ardour/route_processor_selection.o gtk2_ardour/route_time_axis.o gtk2_ardour/route_ui.o gtk2_ardour/selection.o gtk2_ardour/send_ui.o gtk2_ardour/session_import_dialog.o gtk2_ardour/session_metadata_dialog.o gtk2_ardour/session_option_editor.o gtk2_ardour/sfdb_ui.o gtk2_ardour/simpleline.o gtk2_ardour/simplerect.o gtk2_ardour/splash.o gtk2_ardour/startup.o gtk2_ardour/streamview.o gtk2_ardour/strip_silence_dialog.o gtk2_ardour/tape_region_view.o gtk2_ardour/tempo_dialog.o gtk2_ardour/tempo_lines.o gtk2_ardour/theme_manager.o gtk2_ardour/time_axis_view.o gtk2_ardour/time_axis_view_item.o gtk2_ardour/time_fx_dialog.o gtk2_ardour/time_selection.o gtk2_ardour/ui_config.o gtk2_ardour/utils.o gtk2_ardour/version.o gtk2_ardour/waveview.o gtk2_ardour/x11.o -Llibs/pbd -Llibs/gtkmm2/gtk -Llibs/surfaces/control_protocol -Llibs/gtkmm2/pango -Llibs/midi++2 -Llibs/ardour -Llibs/gtkmm2/atk -Llibs/sigc++2 -Llibs/cairomm -Llibs/glibmm2 -Llibs/evoral/src/libsmf -Llibs/rubberband -Llibs/taglib -Llibs/vamp-sdk -Llibs/evoral -Llibs/gtkmm2ext -Llibs/gtkmm2/gdk -Llibs/libgnomecanvasmm -L/usr/local/lib -lardour -lardour_cp -lasound -latkmm -lcairomm -lfftw3 -lm -lfftw3f -lm -lfreetype -lz -lgdkmm2 -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0 -lglibmm2 -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lgio-2.0 -lcairo -lpango-1.0 -lfreetype -lz -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 -lgtkmm2 -lgtkmm2ext -ljack -lpthread -lrt -lgnomecanvas-2 -lart_lgpl_2 -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lgio-2.0 -lcairo -lpango-1.0 -lfreetype -lz -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 -lgnomecanvasmm -llrdf -lmidi++ -lsmf -levoral -lpangomm -lpbd -lsamplerate -lsigc++2 -lsndfile -ltaglib -ljack -lvamphostsdk -lvampsdk -lxml2 -lxslt -lxml2 -lrubberband gtk2_ardour/add_route_dialog.o: In function `AddRouteDialog::group_changed()': add_route_dialog.cc:(.text+0xa6f): undefined reference to `RouteGroupDialog::RouteGroupDialog(ARDOUR::RouteGroup*, Gtk::StockID const&)' add_route_dialog.cc:(.text+0xa7f): undefined reference to `RouteGroupDialog::do_run()' gtk2_ardour/editor.o: In function `Editor::idle_resize()': editor.cc:(.text+0x627): undefined reference to `CairoWidget::set_dirty()' editor.cc:(.text+0x651): undefined reference to `TrackSelection::contains(TimeAxisView const*) const' gtk2_ardour/editor.o: In function `Editor::add_to_idle_resize(TimeAxisView*, int)': editor.cc:(.text+0x71a): undefined reference to `TrackSelection::contains(TimeAxisView const*) const' gtk2_ardour/editor.o: In function `Editor::get_regions_for_action(RegionSelection&, bool)': editor.cc:(.text+0x1f711): undefined reference to `TrackSelection::add(std::list<TimeAxisView*, std::allocator > const&)' gtk2_ardour/editor.o: In function `Editor::connect_to_session(ARDOUR::Session*)': editor.cc:(.text+0x27c11): undefined reference to `GroupTabs::set_session(ARDOUR::Session*)' gtk2_ardour/editor.o: In function `Editor::Editor()': editor.cc:(.text+0x3669c): undefined reference to `EditorGroupTabs::EditorGroupTabs(Editor*)' editor.cc:(.text+0x37459): undefined reference to `Gtkmm2ext::CellRendererPixbufToggle::CellRendererPixbufToggle()' editor.cc:(.text+0x37487): undefined reference to `Gtkmm2ext::CellRendererPixbufToggle::set_active_pixbuf(Glib::RefPtr)' editor.cc:(.text+0x374c7): undefined reference to `Gtkmm2ext::CellRendererPixbufToggle::set_inactive_pixbuf(Glib::RefPtr)' editor.cc:(.text+0x37575): undefined reference to `Gtkmm2ext::CellRendererPixbufToggle::signal_toggled()' editor.cc:(.text+0x375f0): undefined reference to `Gtkmm2ext::CellRendererPixbufToggle::property_active()' gtk2_ardour/editor.o: In function `Editor::Editor()': editor.cc:(.text+0x4366a): undefined reference to `EditorGroupTabs::EditorGroupTabs(Editor*)' editor.cc:(.text+0x44403): undefined reference to `Gtkmm2ext::CellRendererPixbufToggle::CellRendererPixbufToggle()' editor.cc:(.text+0x44431): undefined reference to `Gtkmm2ext::CellRendererPixbufToggle::set_active_pixbuf(Glib::RefPtr)' editor.cc:(.text+0x44471): undefined reference to `Gtkmm2ext::CellRendererPixbufToggle::set_inactive_pixbuf(Glib::RefPtr)' editor.cc:(.text+0x4451f): undefined reference to `Gtkmm2ext::CellRendererPixbufToggle::signal_toggled()' editor.cc:(.text+0x4459a): undefined reference to `Gtkmm2ext::CellRendererPixbufToggle::property_active()' gtk2_ardour/editor.o: In function `Editor::streamview_height_changed()': editor.cc:(.text+0x58f): undefined reference to `CairoWidget::set_dirty()' gtk2_ardour/editor.o: In function `Editor::region_view_added(RegionView*)': editor.cc:(.text+0x5af): undefined reference to `CairoWidget::set_dirty()' gtk2_ardour/editor_edit_groups.o: In function `Editor::edit_route_group(ARDOUR::RouteGroup*)': editor_edit_groups.cc:(.text+0x1c9): undefined reference to `RouteGroupDialog::RouteGroupDialog(ARDOUR::RouteGroup*, Gtk::StockID const&)' editor_edit_groups.cc:(.text+0x1d9): undefined reference to `RouteGroupDialog::do_run()' gtk2_ardour/editor_edit_groups.o: In function `Editor::new_route_group()': editor_edit_groups.cc:(.text+0x459): undefined reference to `RouteGroupDialog::RouteGroupDialog(ARDOUR::RouteGroup*, Gtk::StockID const&)' editor_edit_groups.cc:(.text+0x469): undefined reference to `RouteGroupDialog::do_run()' gtk2_ardour/editor_edit_groups.o: In function `Editor::add_route_group(ARDOUR::RouteGroup*)': editor_edit_groups.cc:(.text+0xa24): undefined reference to `CairoWidget::set_dirty()' gtk2_ardour/editor_edit_groups.o: In function `Editor::new_route_group_from_selection()': editor_edit_groups.cc:(.text+0xbd1): undefined reference to `RouteGroupDialog::RouteGroupDialog(ARDOUR::RouteGroup*, Gtk::StockID const&)' editor_edit_groups.cc:(.text+0xbe5): undefined reference to `RouteGroupDialog::do_run()' gtk2_ardour/editor_edit_groups.o: In function `Editor::new_route_group_from_rec_enabled()': editor_edit_groups.cc:(.text+0xe6b): undefined reference to `RouteGroupDialog::RouteGroupDialog(ARDOUR::RouteGroup*, Gtk::StockID const&)' editor_edit_groups.cc:(.text+0xe7f): undefined reference to `RouteGroupDialog::do_run()' gtk2_ardour/editor_edit_groups.o: In function `Editor::new_route_group_from_soloed()': editor_edit_groups.cc:(.text+0x11cb): undefined reference to `RouteGroupDialog::RouteGroupDialog(ARDOUR::RouteGroup*, Gtk::StockID const&)' editor_edit_groups.cc:(.text+0x11df): undefined reference to `RouteGroupDialog::do_run()' gtk2_ardour/editor_edit_groups.o: In function `Editor::group_flags_changed(void*, ARDOUR::RouteGroup*)': editor_edit_groups.cc:(.text+0x175a): undefined reference to `CairoWidget::set_dirty()' gtk2_ardour/editor_ops.o: In function `Editor::fit_tracks(TrackSelection&)': editor_ops.cc:(.text+0x364c): undefined reference to `TrackSelection::contains(TimeAxisView const*) const' editor_ops.cc:(.text+0x36b9): undefined reference to `TrackSelection::contains(TimeAxisView const*) const' gtk2_ardour/editor_route_list.o: In function `Editor::sync_track_view_list_and_route_list()': editor_route_list.cc:(.text+0xa14): undefined reference to `CairoWidget::set_dirty()' editor_route_list.cc:(.text+0xa29): undefined reference to `CairoWidget::set_dirty()' gtk2_ardour/editor_route_list.o: In function `Editor::handle_new_route(std::list<boost::shared_ptr, std::allocator<boost::shared_ptr > >&)': editor_route_list.cc:(.text+0x313b): undefined reference to `CairoWidget::set_dirty()' gtk2_ardour/editor_summary.o: In function `EditorSummary::EditorSummary(Editor*)': editor_summary.cc:(.text+0x8c3): undefined reference to `CairoWidget::CairoWidget()' gtk2_ardour/editor_summary.o: In function `EditorSummary::EditorSummary(Editor*)': editor_summary.cc:(.text+0x978): undefined reference to `CairoWidget::CairoWidget()' gtk2_ardour/editor_summary.o: In function `EditorSummary::on_expose_event(_GdkEventExpose*)': editor_summary.cc:(.text+0x11ad): undefined reference to `CairoWidget::on_expose_event(_GdkEventExpose*)' gtk2_ardour/editor_summary.o: In function `EditorSummary::set_session(ARDOUR::Session*)': editor_summary.cc:(.text+0x144f): undefined reference to `CairoWidget::set_dirty()' editor_summary.cc:(.text+0x14f8): undefined reference to `CairoWidget::set_dirty()' editor_summary.cc:(.text+0x159d): undefined reference to `CairoWidget::set_dirty()' editor_summary.cc:(.text+0x1642): undefined reference to `CairoWidget::set_dirty()' editor_summary.cc:(.text+0x174f): undefined reference to `CairoWidget::set_dirty()' gtk2_ardour/editor_summary.o: In function `EditorSummary::~EditorSummary()': editor_summary.cc:(.text._ZN13EditorSummaryD1Ev[EditorSummary::~EditorSummary()]+0x52): undefined reference to `CairoWidget::~CairoWidget()' gtk2_ardour/editor_summary.o: In function `EditorSummary::~EditorSummary()': editor_summary.cc:(.text._ZN13EditorSummaryD0Ev[EditorSummary::~EditorSummary()]+0x52): undefined reference to `CairoWidget::~CairoWidget()' gtk2_ardour/editor_summary.o:(.rodata._ZTV13EditorSummary[vtable for EditorSummary]+0x3c): undefined reference to `CairoWidget::on_size_allocate(Gdk::Rectangle&)' gtk2_ardour/editor_summary.o:(.rodata._ZTC13EditorSummary0_11CairoWidget[vtable for EditorSummary]+0xc): undefined reference to `typeinfo for CairoWidget' gtk2_ardour/editor_summary.o:(.rodata._ZTC13EditorSummary0_11CairoWidget[vtable for EditorSummary]+0x10): undefined reference to `CairoWidget::~CairoWidget()' gtk2_ardour/editor_summary.o:(.rodata._ZTC13EditorSummary0_11CairoWidget[vtable for EditorSummary]+0x14): undefined reference to `CairoWidget::~CairoWidget()' gtk2_ardour/editor_summary.o:(.rodata._ZTC13EditorSummary0_11CairoWidget[vtable for EditorSummary]+0x3c): undefined reference to `CairoWidget::on_size_allocate(Gdk::Rectangle&)' gtk2_ardour/editor_summary.o:(.rodata._ZTC13EditorSummary0_11CairoWidget[vtable for EditorSummary]+0x80): undefined reference to `CairoWidget::on_expose_event(_GdkEventExpose*)' gtk2_ardour/editor_summary.o:(.rodata._ZTC13EditorSummary0_11CairoWidget[vtable for EditorSummary]+0x148): undefined reference to `typeinfo for CairoWidget' gtk2_ardour/editor_summary.o:(.rodata._ZTC13EditorSummary0_11CairoWidget[vtable for EditorSummary]+0x14c): undefined reference to `non-virtual thunk to CairoWidget::~CairoWidget()' gtk2_ardour/editor_summary.o:(.rodata._ZTC13EditorSummary0_11CairoWidget[vtable for EditorSummary]+0x150): undefined reference to `non-virtual thunk to CairoWidget::~CairoWidget()' gtk2_ardour/editor_summary.o:(.rodata._ZTC13EditorSummary0_11CairoWidget[vtable for EditorSummary]+0x174): undefined reference to `typeinfo for CairoWidget' gtk2_ardour/editor_summary.o:(.rodata._ZTC13EditorSummary0_11CairoWidget[vtable for EditorSummary]+0x178): undefined reference to `virtual thunk to CairoWidget::~CairoWidget()' gtk2_ardour/editor_summary.o:(.rodata._ZTC13EditorSummary0_11CairoWidget[vtable for EditorSummary]+0x17c): undefined reference to `virtual thunk to CairoWidget::~CairoWidget()' gtk2_ardour/editor_summary.o:(.rodata._ZTI13EditorSummary[typeinfo for EditorSummary]+0x8): undefined reference to `typeinfo for CairoWidget' gtk2_ardour/mixer_strip.o: In function `MixerStrip::select_route_group(_GdkEventButton*)': mixer_strip.cc:(.text+0x753): undefined reference to `RouteGroupMenu::RouteGroupMenu(ARDOUR::Session&, ARDOUR::RouteGroup::Property)' gtk2_ardour/mixer_ui.o: In function `Mixer_UI::group_flags_changed(void*, ARDOUR::RouteGroup*)': mixer_ui.cc:(.text+0xaf4): undefined reference to `CairoWidget::set_dirty()' gtk2_ardour/mixer_ui.o: In function `Mixer_UI::redisplay_track_list()': mixer_ui.cc:(.text+0x4c7a): undefined reference to `CairoWidget::set_dirty()' gtk2_ardour/mixer_ui.o: In function `Mixer_UI::Mixer_UI()': mixer_ui.cc:(.text+0x9500): undefined reference to `MixerGroupTabs::MixerGroupTabs(Mixer_UI*)' gtk2_ardour/mixer_ui.o: In function `Mixer_UI::connect_to_session(ARDOUR::Session*)': mixer_ui.cc:(.text+0xc637): undefined reference to `GroupTabs::set_session(ARDOUR::Session*)' gtk2_ardour/mixer_ui.o: In function `Mixer_UI::Mixer_UI()': mixer_ui.cc:(.text+0xcf9e): undefined reference to `MixerGroupTabs::MixerGroupTabs(Mixer_UI*)' gtk2_ardour/mixer_ui.o: In function `Mixer_UI::strip_width_changed()': mixer_ui.cc:(.text+0x3bf): undefined reference to `CairoWidget::set_dirty()' gtk2_ardour/route_time_axis.o: In function `RouteTimeAxisView::edit_click(_GdkEventButton*)': route_time_axis.cc:(.text+0x1e70): undefined reference to `RouteGroupMenu::rebuild(ARDOUR::RouteGroup*)' gtk2_ardour/route_time_axis.o: In function `RouteTimeAxisView::RouteTimeAxisView(PublicEditor&, ARDOUR::Session&, boost::shared_ptr, Gnome::Canvas::Canvas&)': route_time_axis.cc:(.text+0x146d9): undefined reference to `RouteGroupMenu::RouteGroupMenu(ARDOUR::Session&, ARDOUR::RouteGroup::Property)' gtk2_ardour/route_time_axis.o: In function `RouteTimeAxisView::RouteTimeAxisView(PublicEditor&, ARDOUR::Session&, boost::shared_ptr, Gnome::Canvas::Canvas&)': route_time_axis.cc:(.text+0x1765d): undefined reference to `RouteGroupMenu::RouteGroupMenu(ARDOUR::Session&, ARDOUR::RouteGroup::Property)' gtk2_ardour/selection.o: In function `Selection::add(std::list<TimeAxisView*, std::allocator > const&)': selection.cc:(.text+0x142a): undefined reference to `TrackSelection::add(std::list<TimeAxisView*, std::allocator > const&)' collect2: ld a retourné 1 code d'état d'exécution scons: *** [gtk2_ardour/ardour-3.0] Error 1 scons: building terminated because of errors.