Impulse convolver/guitarix

Programming applications for making music on Linux.

Moderators: MattKingUSA, khz

brummer

Re: Impulse convolver/guitarix

Post by brummer »

run ./waf configure --cxxflags="-O3 -Wall -march=native" again,
dont use the -V4.3

That's allready the new source now in /trunk, it have replace the old one, the structure is somewhat different from the old style, it will be wise to make a new fresh checkout to a empty directory.
You can savly use your old prestets with the new guitarix :)

so best will be you try first to build it without involce a special compiler, let us know the result so that we can re-akt if somthing go's wrong.

brummer
User avatar
funkmuscle
Established Member
Posts: 2986
Joined: Mon Jun 02, 2008 2:30 pm
Has thanked: 197 times
Been thanked: 50 times

Re: Impulse convolver/guitarix

Post by funkmuscle »

./waf build
[ 1/31] cxx: ladspa/crybaby.cpp -> build/default/ladspa/crybaby_1.o
[ 2/31] cxx: ladspa/distortion.cpp -> build/default/ladspa/distortion_2.o
[ 3/31] cxx: ladspa/echo.cpp -> build/default/ladspa/echo_3.o
[ 4/31] cxx: ladspa/freeverb.cpp -> build/default/ladspa/freeverb_4.o
[ 5/31] cxx: ladspa/impulseresponse.cpp -> build/default/ladspa/impulseresponse_5.o
[ 6/31] cxx: ladspa/monoamp.cpp -> build/default/ladspa/monoamp_6.o
[ 7/31] cxx: ladspa/monocompressor.cpp -> build/default/ladspa/monocompressor_7.o
[ 8/31] cxx: ladspa/guitarix-ladspa.cpp -> build/default/ladspa/guitarix-ladspa_8.o
[ 9/31] cxx: src/gx_globals.cpp -> build/default/src/gx_globals_1.o
In file included from ../src/headers/guitarix.h:41,
from ../src/gx_globals.cpp:40:
../src/headers/gx_engine.h: In function ‘void* gx_engine::aligned_calloc(size_t, size_t)’:
../src/headers/gx_engine.h:46: error: ‘calloc’ was not declared in this scope
../src/gx_globals.cpp: At global scope:
../src/gx_globals.cpp:198: error: ‘getenv’ was not declared in this scope
Build failed
-> task failed (err #1):
{task: cxx gx_globals.cpp -> gx_globals_1.o}

Fresh checkout also....
brummer

Re: Impulse convolver/guitarix

Post by brummer »

okay, update, try again.

gcc 4.4 have change a bit in relation to gcc 4.3 , it's a additional header what gcc 4,4 need. Have include it now. May there are more missing headers, thats posible, let us know :D

brummer
User avatar
funkmuscle
Established Member
Posts: 2986
Joined: Mon Jun 02, 2008 2:30 pm
Has thanked: 197 times
Been thanked: 50 times

Re: Impulse convolver/guitarix

Post by funkmuscle »

looks like more are missing:

./waf build
[ 9/31] cxx: src/gx_globals.cpp -> build/default/src/gx_globals_1.o
[10/31] cxx: src/gx_child_process.cpp -> build/default/src/gx_child_process_1.o
In file included from ../src/headers/guitarix.h:41,
from ../src/gx_child_process.cpp:41:
../src/headers/gx_engine.h: In function ‘void* gx_engine::aligned_calloc(size_t, size_t)’:
../src/headers/gx_engine.h:46: error: ‘calloc’ was not declared in this scope
../src/gx_child_process.cpp: In function ‘pid_t gx_child_process::gx_find_child_pid(const char*)’:
../src/gx_child_process.cpp:217: error: ‘atoi’ was not declared in this scope
../src/gx_child_process.cpp: In function ‘void gx_child_process::gx_show_jack_capture_gui(GtkWidget*, void*)’:
../src/gx_child_process.cpp:228: error: ‘system’ was not declared in this scope
../src/gx_child_process.cpp: In function ‘bool gx_child_process::gx_capture_command(int, std::string&)’:
../src/gx_child_process.cpp:267: error: ‘getenv’ was not declared in this scope
../src/gx_child_process.cpp: In function ‘void gx_child_process::gx_start_stop_jconv(GtkWidget*, void*)’:
../src/gx_child_process.cpp:478: error: ‘getenv’ was not declared in this scope
Build failed
-> task failed (err #1):
{task: cxx gx_child_process.cpp -> gx_child_process_1.o}
brummer

Re: Impulse convolver/guitarix

Post by brummer »

yes, indeed, so have update again.

one more run ? :lol:

brummer
User avatar
funkmuscle
Established Member
Posts: 2986
Joined: Mon Jun 02, 2008 2:30 pm
Has thanked: 197 times
Been thanked: 50 times

Re: Impulse convolver/guitarix

Post by funkmuscle »

updated and still: :(

./waf build
[ 9/31] cxx: src/gx_globals.cpp -> build/default/src/gx_globals_1.o
[10/31] cxx: src/gx_child_process.cpp -> build/default/src/gx_child_process_1.o
[11/31] cxx: src/gx_engine.cpp -> build/default/src/gx_engine_1.o
[12/31] cxx: src/gx_gui.cpp -> build/default/src/gx_gui_1.o
In file included from ../src/headers/guitarix.h:41,
from ../src/gx_gui.cpp:41:
../src/headers/gx_engine.h: In function ‘void* gx_engine::aligned_calloc(size_t, size_t)’:
../src/headers/gx_engine.h:46: error: ‘calloc’ was not declared in this scope
Build failed
-> task failed (err #1):
{task: cxx gx_gui.cpp -> gx_gui_1.o}

but will keep trying... :D
brummer

Re: Impulse convolver/guitarix

Post by brummer »

well, so let's go one more try now :lol:
User avatar
funkmuscle
Established Member
Posts: 2986
Joined: Mon Jun 02, 2008 2:30 pm
Has thanked: 197 times
Been thanked: 50 times

Re: Impulse convolver/guitarix

Post by funkmuscle »

./waf build
[12/31] cxx: src/gx_gui.cpp -> build/default/src/gx_gui_1.o
[13/31] cxx: src/gx_jack.cpp -> build/default/src/gx_jack_1.o
[14/31] cxx: src/gx_jconv_settings.cpp -> build/default/src/gx_jconv_settings_1.o
In file included from ../src/headers/guitarix.h:41,
from ../src/gx_jconv_settings.cpp:46:
../src/headers/gx_engine.h: In function ‘void* gx_engine::aligned_calloc(size_t, size_t)’:
../src/headers/gx_engine.h:46: error: ‘calloc’ was not declared in this scope
../src/gx_jconv_settings.cpp: In constructor ‘gx_jconv::GxJConvSettings::GxJConvSettings()’:
../src/gx_jconv_settings.cpp:64: error: ‘getenv’ was not declared in this scope
../src/gx_jconv_settings.cpp: In function ‘void gx_jconv::gx_acquire_jconv_value(GtkWidget*, void*)’:
../src/gx_jconv_settings.cpp:467: error: ‘atoi’ was not declared in this scope
Build failed
-> task failed (err #1):
{task: cxx gx_jconv_settings.cpp -> gx_jconv_settings_1.o} :(
brummer

Re: Impulse convolver/guitarix

Post by brummer »

it's a pity, okay, I think now I get it, cant test it here with gcc 4.4 , but . . .

updated, try again, . . . :?
thorgal
Established Member
Posts: 739
Joined: Mon Apr 07, 2008 6:04 pm

Re: Impulse convolver/guitarix

Post by thorgal »

looks weird to me.
I compiled svn@257 with g++ 4.4, no glitch at all. This gcc stuff is highly irritating, from one minor release to the next, they reshuffle basic system headers and break gazillions of project compilation. Not good.

EDIT: fixed a small initialization logic issue when no jconv stuff was found. Try svn@264
User avatar
raboof
Established Member
Posts: 1865
Joined: Tue Apr 08, 2008 11:58 am
Location: Deventer, NL
Has thanked: 52 times
Been thanked: 80 times
Contact:

Re: Impulse convolver/guitarix

Post by raboof »

thorgal wrote:This gcc stuff is highly irritating, from one minor release to the next, they reshuffle basic system headers and break gazillions of project compilation. Not good.
To be fair, they don't change the 'official' header you should include to get a function, do they? If it worked before, that was more or less by accident because some header you did include used to depend on some header you used without including it.

Still irritating, though, of course - i've been bitten by it several times also.
brummer

Re: Impulse convolver/guitarix

Post by brummer »

they change the internal includes from the headers, so at least you need to include every single header you need to be prevent for thuch a "bug".

But how do that ? If you look around you found several projekts bitten by that every new gcc release.

Anyway, I guess for gcc 4.4 we are now on the run :)
Let's see what hapen when the next gcc version arive.
For gcc 4.4 they have list here the changes:
http://gcc.gnu.org/gcc-4.4/porting_to.html

for other versions simply change the version number in the adress.

@thorgal yup, resampling works now nice again.
User avatar
raboof
Established Member
Posts: 1865
Joined: Tue Apr 08, 2008 11:58 am
Location: Deventer, NL
Has thanked: 52 times
Been thanked: 80 times
Contact:

Re: Impulse convolver/guitarix

Post by raboof »

brummer wrote:you need to include every single header you need to be prevent for thuch a "bug".
That doesn't sound entirely unreasonable.
But how do that? If you look around you found several projekts bitten by that every new gcc release.
Perhaps there should be a lint-like tool that check whether you're not making assumptions you shouldn't be making.. I don't know of such a tool though.
thorgal
Established Member
Posts: 739
Joined: Mon Apr 07, 2008 6:04 pm

Re: Impulse convolver/guitarix

Post by thorgal »

here we go:
C++ language issues
Header dependency changes

Some of the standard C++ library include files have been edited to include only the smallest possible number of additional files. As such, C++ programs that used std::printf without including <cstdio>, or used uint32_t without including <stdint.h> will no longer compile.

In detail:

The file <cstdio> is no longer included as part of <string>, <ios>, <iomanip>, <streambuf>, or <locale>.

The file <stdint.h> is no longer included as part of <string> or<ios>.
@brummer: I guess we can do something I wanted to avoid:
gather all system headers in guitarix.h at the top of the file, including the statement "using namespace std;" So we can unclutter the cpp files. I don't like this, I like to see the explicit dependencies in each source unit to be turned into an object. But this gcc crap tends to create too much overhead each time the gcc folks are breaking something (of course, they break it for the better ;) ... )


@raboof: there are tools out there, not sure they're free. I used to use something called flexlint on solaris. There's also a bigger tool called klockwork. Don't know if they are available for free on linux. Maybe some eclipse modules can do the job ? I am not familiar with eclipse but it looks quite exhaustive from what I've seen at work (some colleagues use it for all sorts of things, alsoas a bridge interface to manipulate clearcase vobs elements from some clearcase view storage).
brummer

Re: Impulse convolver/guitarix

Post by brummer »

thorgal wrote:@brummer: I guess we can do something I wanted to avoid:
gather all system headers in guitarix.h at the top of the file, including the statement "using namespace std;" So we can unclutter the cpp files. I don't like this, I like to see the explicit dependencies in each source unit to be turned into an object. But this gcc crap tends to create too much overhead each time the gcc folks are breaking something (of course, they break it for the better ;) ... )
Don't know, I realy like the new style you have bring to the guitarix source, may it's a bit more work when gcc changed some thing, but this way (include depends in every object) it's better to controll what we need for etch single step.

So I mean let us bite in the soure apple, watch out when a new gcc released, and refuel the "new needs". :)
Post Reply