Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

compiling snack package with tcl8,6

104 views
Skip to first unread message

Luc Moulinier

unread,
Dec 2, 2019, 2:31:00 PM12/2/19
to
Hello everybody,

I'm trying to compile the snack package v2.2.10 using tcl/tk 8.6.7 (64 bits) for macOS but the compilation failed (see below). As a test, I tried also to compile the unix version but it failed also.

I used the ActiveState teapot source code. The activeState binary version for macosx does not work, the libsnack.dylib can not be loaded.


Does anyone know about a new version or a mac x86_64 compatible version.? Or is there an alternative to snack ?

Many thanks in advance !

Luc

ld: warning: text-based stub file /System/Library/Frameworks//CoreAudio.framework/CoreAudio.tbd and library file /System/Library/Frameworks//CoreAudio.framework/CoreAudio are out of sync. Falling back to library file for linking.
Undefined symbols for architecture x86_64:
"_Tcl_SeekOld", referenced from:
_Snack_StopSound in jkSoundEngine.o
_SnackSeekFile in jkSoundFile.o
_GetRawHeader in jkSoundFile.o
_GetSmpHeader in jkSoundFile.o
_GetCslHeader in jkSoundFile.o
_GetSdHeader in jkSoundFile.o
_GetAuHeader in jkSoundFile.o
...
"_Tcl_TellOld", referenced from:
_GetRawHeader in jkSoundFile.o
_GetSmpHeader in jkSoundFile.o
_GetCslHeader in jkSoundFile.o
_GetSdHeader in jkSoundFile.o
_GetAuHeader in jkSoundFile.o
_GetWavHeader in jkSoundFile.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (u

Brad Lanam

unread,
Dec 2, 2019, 3:06:36 PM12/2/19
to
On Monday, December 2, 2019 at 11:31:00 AM UTC-8, Luc Moulinier wrote:
> Does anyone know about a new version or a mac x86_64 compatible version.? Or is there an alternative to snack ?

I use an interface to VLC.
I have never used snack, so I don't know if it is a proper alternative.

https://wiki.tcl-lang.org/page/VLC+Tcl+Extension
https://sourceforge.net/p/ballroomdj/code/ci/default/tree/src/tclvlc.c

I believe undroidwish includes a VLC interface.

heinrichmartin

unread,
Dec 2, 2019, 3:59:33 PM12/2/19
to
On Monday, December 2, 2019 at 8:31:00 PM UTC+1, Luc Moulinier wrote:
> I'm trying to compile the snack package v2.2.10 using tcl/tk 8.6.7 (64 bits) for macOS but the compilation failed (see below). As a test, I tried also to compile the unix version but it failed also.
>
> Does anyone know about a new version or a mac x86_64 compatible version.? Or is there an alternative to snack ?

No mac experience here. I used Fedora 22 srpms for my RHEL 6.5 without major problems. They have several patches and dependencies.

From the tcl-snack.spec:
BuildRequires: tcl-devel, tk-devel, libogg-devel, libvorbis-devel
BuildRequires: libXft-devel
BuildRequires: alsa-lib-devel
BuildRequires: python-devel
Requires: tcl(abi) = %{tcl_version}
...
%configure --disable-static --with-tcl=%{_libdir} --with-tk=%{_libdir} --with-ogg-include=%{_includedir} --with-ogg-lib=%{_libdir} --enable-alsa
make %{?_smp_mflags} EXTRACFLAGS="%{optflags}"

Versions:
SOURCES/libogg-1.1.4.tar.gz
SOURCES/snack2.2.10-nomp3.tar.gz
SOURCES/tcl-core8.6.4-src.tar.gz

Maybe this helps...

Ralf Fassel

unread,
Dec 3, 2019, 10:22:22 AM12/3/19
to
* Luc Moulinier <luc.mo...@igbmc.fr>
I had the same problem on Windows and applied the patch appended at the
end to the *TCL* (not snack!) sources, which basically enables
Tcl_SeekOld and Tcl_TellOld in the TCL library again.

After that, the linker should find those symbols for snack.

See also
http://compgroups.net/comp.lang.tcl/compiling-snack-2.2.10-vs-tcl-8.6.1/2980363

HTH
R'

--- tcl8.6.10/generic/tclDecls.h.orig 2016-03-01 02:59:21.000000000 +0100
+++ tcl8.6.10/generic/tclDecls.h 2016-03-01 11:06:03.388180928 +0100
@@ -3808,8 +3808,10 @@
#undef TCL_STORAGE_CLASS
#define TCL_STORAGE_CLASS DLLIMPORT

+#if 0
#undef Tcl_SeekOld
#undef Tcl_TellOld
+#endif

#undef Tcl_PkgPresent
#define Tcl_PkgPresent(interp, name, version, exact) \

Diff finished. Wed Aug 16 11:27:00 2017

Luc Moulinier

unread,
Dec 4, 2019, 1:49:22 PM12/4/19
to
Dear Ralf,

Thank you for the trick. It works indeed, but I got an other error when linking with Tk. The linker can not find _TkPutImage when compiling with tcl/tk 8,6,7. (I don't know why it want to use TkPutImage with snack but ....)

Maybe you have an other brillant idea ? ;-) ?

Thanks again !!
Luc
0 new messages