Error trying to build ardourvst 2.5 in a 32 bits chroot


I was trying to build ardourvst 2.5 in a 32bits chroot on my Debian amd64, but i got this error message :

libs/pbd/ In constructor 'PBD::FPU::FPU()': libs/pbd/ warning: dereferencing type-punned pointer will break strict-aliasing rules {standard input}: Assembler messages: {standard input}:117: Error: bad register name `%rbx' {standard input}:118: Error: bad register name `%rax' {standard input}:120: Error: bad register name `%rdx' {standard input}:121: Error: bad register name `%rbx' {standard input}:212: Error: bad register name `%rbx' {standard input}:213: Error: bad register name `%rax' {standard input}:215: Error: bad register name `%rdx' {standard input}:216: Error: bad register name `%rbx' scons: *** [libs/pbd/fpu.os] Error 1 scons: building terminated because of errors.

I’m not an expert, so does someone what i did wrong?

Thanx for your help.

I have no idea. I can tell you that is much more likely that its a problem with your build setup, since I build ardour on an amd64 platform all the time. It may be that the build system for arodur is not able to correctly identify your chroot-ed environment as a 32 bit one, and thus attempts to use the 64 bit branch of the FPU-management code. I am not sure that chroot can alter the way that the processor type will be perceived (its determined by reading /proc/cpuinfo)

Yes, actually when i start the building i can read something like :

detected DIST_TARGET=x86_64

So is there a way to fix it? Or do i make a dual boot with a 32bit OS?

I changed the file SConstruct and replaced the line 684

env['DIST_TARGET'] = 'x86_64' by env['DIST_TARGET'] = 'i686'

and it built ardourvst in my chroot.


After configuring jackd in the chroot, i start it :

$ dchroot -d I : [chroot i32] Exécution de l'interpréteur de commandes : « /bin/bash » $ /usr/bin/jackd -t 0 -m -p 128 -R -P 90 -T -d alsa -n 2 -r 96000 -p 1024 -d hw:0,0 jackd 0.109.2 Copyright 2001-2005 Paul Davis and others. jackd comes with ABSOLUTELY NO WARRANTY This is free software, and you are welcome to redistribute it under certain conditions; see the file COPYING for details

JACK compiled with System V SHM support.
loading driver …
apparent rate = 96000
creating alsa driver … hw:0,0|hw:0,0|1024|2|96000|0|0|nomon|swmeter|-|32bit
control device hw:0
configuring for 96000Hz, period = 1024 frames (10.7 ms), buffer = 2 periods
ALSA: final selected sample format for capture: 32bit little-endian
ALSA: use 2 periods for capture
ALSA: final selected sample format for playback: 32bit little-endian
ALSA: use 2 periods for playback

Then i start ardourvst :

$ dchroot -c i32 -d ardourvst
But it just stays on the startup logo and jack crashes. There is this error message :
$ subgraph starting at ardour timed out (subgraph_wait_fd=7, status = 0, state = Triggered)

**** alsa_pcm: xrun of at least 0.020 msecs

cannot read event response from client [ardour] (Connection reset by peer)
bad status for client event handling (type =8)
cannot send event to client [ardour] (Broken pipe)
bad status for client event handling (type =8)

**** alsa_pcm: xrun of at least 29.683 msecs

In /32bits/usr/local/lib/vst there is xxx.fst file for the vst xxx.dll that i put there for the tests.

Does someone have an idea of the problem?

thanks for information

My regards