Opened 6 weeks ago

Closed 6 weeks ago

#15312 closed defect (fixed)

error when compiling latest trunk on Ubuntu 23.04 - Sonivox library outdated

Reported by: artynet Owned by: dwatteau
Priority: normal Component: Audio
Version: Keywords: build, trunk, stable, g++-13, clang++
Cc: artynet Game:

Description

Hello folks,

I bump into this error when trying to build the latest source (starting from the latest stable release 2.8.1 and onward) on my local system running Ubuntu 23.04.

The build error is the following:

    C++      audio/softsynth/appleiigs.o
    C++      audio/softsynth/fluidsynth.o
    C++      audio/softsynth/mt32.o
    C++      audio/softsynth/eas.o
    C++      audio/softsynth/pcspk.o
audio/softsynth/eas.cpp:201:10: error: use of undeclared identifier 'EAS_LoadDLSCollection'
                        res = EAS_LoadDLSCollection(_EASHandle, 0, &f);
                              ^
    C++      audio/softsynth/sid.o
1 error generated.

I have tried replacing the default gcc (v12) with the gcc-13 (and g+++-13 of course) built-in ubuntu version ad clang++ as well but the error persists.

Can you give some pointers ? maybe a simple patch to fix the main source code will be appreciated. Thanks in advance, Arturo.

Change History (9)

comment:1 by eriktorbjorn, 6 weeks ago

EAS... It appears to be part of some "Sonivox" MIDI drive I've never used, and know nothing about. If so, you may be able to work around the problem by using the --disable-sonivox parameter when running the configure script, to tell it to not try to auto-detect it.

Maybe you have a version of the Sonivox libraries that configure detects, but doesn't contain the EAS_LoadDLSCollection() function? I found a reference to it being introduced in Sonivox release 3.6.12.

comment:2 by artynet, 6 weeks ago

Thank you eriktorbjorn,

upgrading sonovox libraries to release v3.6.12 did the trick. After that I was able to build the stable 2.8.1 in debian version getting the ubuntu source from the package sources portal.

Therefore, the ticket can be marked as solved and thus can be closed.

Thank you for your help, I have really appreciated it!

Kind Regards, Arturo

comment:3 by eriktorbjorn, 6 weeks ago

I think the configure script should check if Sonivox library is recent enough though, so perhaps keep the bug open a bit longer?

comment:4 by artynet, 6 weeks ago

That's a good idea....the configure script must run a strict control about the sonovox version. I'll wait for further feedback and then close the ticket.

Kind Regards

Version 0, edited 6 weeks ago by artynet (next)

comment:5 by artynet, 6 weeks ago

Summary: error when compiling latest trunk on Ubuntu 23.04error when compiling latest trunk on Ubuntu 23.04 - sonovox library outdated

comment:6 by artynet, 6 weeks ago

Summary: error when compiling latest trunk on Ubuntu 23.04 - sonovox library outdatederror when compiling latest trunk on Ubuntu 23.04 - sonivox library outdated

comment:7 by artynet, 6 weeks ago

Summary: error when compiling latest trunk on Ubuntu 23.04 - sonivox library outdatederror when compiling latest trunk on Ubuntu 23.04 - Sonivox library outdated

comment:8 by dwatteau, 6 weeks ago

In c7f040e9:

CONFIGURE: Test EAS_LoadDLSCollection() availability in Sonivox checks

audio/softsynth/eas.cpp uses it, but the configure check didn't test
for it, and not all releases of Sonivox have it (it looks like it
was removed in some releases, and then added back after the API
breakage was noticed).

This would cause a build failure, later on.

We don't realy check for Sonivox >= 3.6.12, we just check for the
function availability (that's what we want, and indeed it may have
existed in some earlier releases), but mentionning 3.6.12 in the
output could help users figure out what they need.

Trac#15312.

comment:9 by dwatteau, 6 weeks ago

Owner: set to dwatteau
Resolution: fixed
Status: newclosed

Hello!

Thank you for reporting this build issue, this is very appreciated.

Indeed, since audio/softsynth/eas.cpp needs this function, then the configure check should also check for this function availability.

I've pushed a fix doing that. Users having an older Sonivox version will now no have any build error anymore, and just a warning mentioning Sonivox >= 3.6.12.

Note: See TracTickets for help on using tickets.