TTSynth Is Available Again

Doug Sutherland doug at proficio.ca
Wed Jun 20 23:35:41 EDT 2007


Travis wrote:
Why would you need any libs (regardless of gcc version) if it was a  
statically linked binary?

I haven't touched the TTSynth but a few years ago worked on 
getting the tts part of viavoice working on newer versions of 
slackware and also on lfs. The problem is that when the tts 
was released, that statically built binary was built using the 
toolchain and runtime environment of the time, and at some 
point it stopped working for most people. You had the choice
not upgrading your os (not a good choice!) or not having the 
tts, or trying to work around the problem. 

I forget the exact details but essentially glibc is tricky as far 
as distributions go, it is built as part of the toolchain since 
other stuff uses it, and the toolchain, that being the compiler,
assembler, linker, binutils, etc, they work together in certain
versions and they crash hard in others. You cannot take an
old binutils and expect it to work with a newer gcc or 
glibc. 

I recall that on slackware I was able to get it working on 
newer versions using some additional binaries and creating 
some symbolic links, basically I copied over binaries from 
older version of slackware and added them with the 
necessary links so the tts could find and use them. LFS was 
a different story. I had to try building several different entire 
toolchains until I found one that worked. If you arbitrarily 
pick a combination of binutils, gcc, and glibc, odds are 
that you won't even get the toolchain built. It will fail in 
the compile somewhere because these are moving targets.
It is actually quite a lot of work to get a stable toolchain
built from source, even more so if you diverge from x86
into arm and other architectures. 

As I said, I forget the exact details, but don't forget that 
even if a binary is statically compiled, it's built to work with 
a runtime c library. At some point the old binary started 
crashing with unable to resolve symbol errors. If one 
wants to get ibm tts working on slackware or lfs they 
probably need to incorporate old runtime libraries that
don't exist. With LFS in particular, the whole idea of the
system is build it as you like it, so that's why I say you
are on your own with that system. I often see how most
software will have fedora or debian or whatever support
or pre-compiled binaries, doubt you'll ever see them for
LFS, it's not even reallt considered a distro, is it?

On slackware, I'm used to having to do extra work 
because not many projects support slackware or have
any slackware precompiled binaries. On the other 
hand I almost never add binaries, only build from 
source, so that never bugs me too much. It can be a 
challenge though, for example to get the latest vmware
working on slackware you have to create a fake 
(empty) system v style init directory tree or the install
will just fail. You also have to install pam and change
a few things in the pam configuration that comes with
vmware. I still like slackware and lfs because I can 
understand them. The other systems can be a bit 
mysterious at times, convenient when they work 
but not as easy to figure out when things break. 

> All linux distros can use statically linked binaries can't they? so  
> what's the problem?
> unless static linked versions of said binary aren't possible to build  
> perhaps?





More information about the Speakup mailing list