Xiph.Org issueshttps://gitlab.xiph.org/groups/xiph/-/issues2022-08-20T02:49:50Zhttps://gitlab.xiph.org/xiph/ezstream/-/issues/2268libtag_c not recognized2022-08-20T02:49:50ZDigitalBox98libtag_c not recognizedAll dependencies were installed :
sudo apt-get install libshout3-dev libxml2-dev libtag1-dev libshout3-dev libvorbis-dev libogg-dev check libtag-extras-dev libtagc0-dev
However when launching configure, the libtag_c error below is raise...All dependencies were installed :
sudo apt-get install libshout3-dev libxml2-dev libtag1-dev libshout3-dev libvorbis-dev libogg-dev check libtag-extras-dev libtagc0-dev
However when launching configure, the libtag_c error below is raised :
./configure
checking tag_c.h usability... yes
checking tag_c.h presence... yes
checking for tag_c.h... yes
checking if libtag_c works... no
checking if libtag_c works with -ltag -lstdc++ -lz... no
checking for libtag_c... no
configure: error: libtag_c is missingMoritz GrimmMoritz Grimmhttps://gitlab.xiph.org/xiph/ezstream/-/issues/2267Make fails with undefined references in function "_stream_cfg_tls"2022-08-20T02:55:19ZChris WoodsMake fails with undefined references in function "_stream_cfg_tls"Attempting to compile ezstream from either the latest master or develop branch on CentOS 7, with libshout 2.4.3 (compiled from source) and other packages like libtag from repo. Autoconf and configure are happy, however every time make fa...Attempting to compile ezstream from either the latest master or develop branch on CentOS 7, with libshout 2.4.3 (compiled from source) and other packages like libtag from repo. Autoconf and configure are happy, however every time make fails on TLS checks:
```
./.libs/libezstream.a(stream.o): In function `_stream_cfg_tls':
./installers/ezstream-develop/src/stream.c:134: undefined reference to `shout_set_tls'
./installers/ezstream-develop/src/stream.c:146: undefined reference to `shout_set_ca_directory'
./installers/ezstream-develop/src/stream.c:160: undefined reference to `shout_set_ca_file'
./installers/ezstream-develop/src/stream.c:174: undefined reference to `shout_set_client_certificate'
./installers/ezstream-develop/src/stream.c:183: undefined reference to `shout_set_allowed_ciphers'
```
OpenSSL 1.0.2k-fips installed, again from repo.Moritz GrimmMoritz Grimmhttps://gitlab.xiph.org/xiph/opus/-/issues/2321.exe opens CMD and closes it.2020-06-13T22:50:59ZJose.exe opens CMD and closes it.How can I even open the .exe when it closes right after?How can I even open the .exe when it closes right after?https://gitlab.xiph.org/xiph/icecast-server/-/issues/2382Streaming over SSL disconnects2020-10-02T13:45:10ZcyberStreaming over SSL disconnectsHi,
ERROR:
Feb 25 13:27:39 hostname kernel: icecast[550]: segfault at 7f2b7fe74000 ip 00007f2b7faa3a56 sp 00007ffef066b1a0 error 4 in libcrypto.so.1.0.1e[7f2b7fa2d000+1ba000]
Feb 25 17:22:07 hostname kernel: icecast[21702]: segfault at ...Hi,
ERROR:
Feb 25 13:27:39 hostname kernel: icecast[550]: segfault at 7f2b7fe74000 ip 00007f2b7faa3a56 sp 00007ffef066b1a0 error 4 in libcrypto.so.1.0.1e[7f2b7fa2d000+1ba000]
Feb 25 17:22:07 hostname kernel: icecast[21702]: segfault at 7f31c0de6000 ip 00007f31c0a15a56 sp 00007fff82c831f0 error 4 in libcrypto.so.1.0.1e[7f31c099f000+1ba000]
We have a station configured with icecast with SSL and has random disconnections.
Versions:
/usr/local/bin/icecast -v
Icecast 2.4.4
OpenSSL 1.0.1e-fips 11 Feb 2013
CentOS release 6.10
Centova Cast 3.2.10.20170725.stable-519r4029
Does anyone know if there is any way to solve this?
All I have found is this link but there is no solution in this regard:
https://gitlab.xiph.org/xiph/icecast-server/issues/2283
Kind regards,https://gitlab.xiph.org/xiph/icecast-libshout/-/issues/2316Cannot connect to server in nonblocking mode ("Please retry current operation.")2022-04-12T11:02:45ZTomasz LemiechCannot connect to server in nonblocking mode ("Please retry current operation.")After reenabling nonblocking sockets by applying the fix (workaround?) described in https://gitlab.xiph.org/xiph/icecast-libshout/issues/2315 the client is unable to connect to the server at all. HTTP request is sent, but the client clos...After reenabling nonblocking sockets by applying the fix (workaround?) described in https://gitlab.xiph.org/xiph/icecast-libshout/issues/2315 the client is unable to connect to the server at all. HTTP request is sent, but the client closes the connection before the reply arrives.
```
$ ./nonblocking
Error connecting: Please retry current operation.
```
strace shows the following:
```
$ strace -e connect,fcntl,fcntl64,select ./nonblocking
fcntl(4, F_SETFL, O_RDONLY|O_NONBLOCK) = 0
connect(4, {sa_family=AF_INET, sin_port=htons(8000), sin_addr=inet_addr("127.0.0.1")}, 16) = -1 EINPROGRESS (Operation now in progress)
select(5, [4], [4], [4], {tv_sec=0, tv_usec=1000}) = 1 (out [4], left {tv_sec=0, tv_usec=999})
select(5, NULL, [4], NULL, {tv_sec=0, tv_usec=0}) = 1 (out [4], left {tv_sec=0, tv_usec=0})
select(5, [4], NULL, [4], {tv_sec=0, tv_usec=1000}) = 0 (Timeout)
Error connecting: Please retry current operation.
+++ exited with 0 +++
```
The third `select` call times out. Backtrace at this `select` call:
```
#0 __GI___select (nfds=5, readfds=readfds@entry=0x7fffffffc6c0, writefds=writefds@entry=0x0,
exceptfds=exceptfds@entry=0x7fffffffc7c0, timeout=timeout@entry=0x7fffffffc6b0) at ../sysdeps/unix/sysv/linux/select.c:39
#1 0x00007ffff7f78f3e in shout_connection_iter__wait_for_io (con=con@entry=0x55555555aa10, for_write=for_write@entry=0,
timeout=timeout@entry=0, shout=0x55555555a490, for_read=1) at connection.c:144
#2 0x00007ffff7f7961c in shout_connection_iter__message (shout=0x55555555a490, con=0x55555555aa10) at connection.c:374
#3 shout_connection_iter (shout=<optimized out>, con=<optimized out>) at connection.c:478
#4 shout_connection_iter (con=con@entry=0x55555555aa10, shout=shout@entry=0x55555555a490) at connection.c:442
#5 0x00007ffff7f77571 in try_connect (self=self@entry=0x55555555a490) at shout.c:1333
#6 0x00007ffff7f77752 in shout_open (self=0x55555555a490) at shout.c:189
#7 0x000055555555529b in main () at nonblocking.c:66
```
As a result of this timeout, `shout_connection_iter__wait_for_io` returns `SHOUT_RS_TIMEOUT` to `shout_connection_iter__message`, which then gets propagated back to `shout_connection_iter`. Now due to the following condition in `__iter` macro:
```C
case SHOUT_RS_TIMEOUT: \
case SHOUT_RS_NOTNOW: \
if (con->nonblocking == SHOUT_BLOCKING_NONE) \
return SHOUTERR_RETRY; \
retry = 1; \
```
`SHOUTERR_RETRY` is returned from `shout_connection_iter` and propagated back via `try_connect` and `shout_open` to the caller, which is usually not prepared to handle this value (it expects `SHOUTERR_SUCCESS`, `SHOUTERR_CONNECTED` or `SHOUTERR_BUSY`).
A one-line fix to the above:
```C
if (con->nonblocking == SHOUT_BLOCKING_NONE) \
return SHOUTERR_BUSY; \
```
fixes the problem.https://gitlab.xiph.org/xiph/icecast-libshout/-/issues/2315Network socket not set to nonblocking mode despite using nonblocking API2020-10-23T07:06:28ZTomasz LemiechNetwork socket not set to nonblocking mode despite using nonblocking APIhttps://gitlab.xiph.org/xiph/icecast-libshout/commit/0ac7ed9e84c3871d4427acc1ce59dca5e4af21ef introduced a bug which causes network sockets not to be set into nonblocking mode when requested with `shout_set_nonblocking(s, 1)`. This can b...https://gitlab.xiph.org/xiph/icecast-libshout/commit/0ac7ed9e84c3871d4427acc1ce59dca5e4af21ef introduced a bug which causes network sockets not to be set into nonblocking mode when requested with `shout_set_nonblocking(s, 1)`. This can be demonstrated simply by tracing an example `nonblocking` app.
Bad (current master HEAD):
```
$ strace -f -e fcntl,fcntl64,socket,connect ./nonblocking
(...)
socket(AF_INET, SOCK_STREAM, IPPROTO_TCP) = 4
connect(4, {sa_family=AF_INET, sin_port=htons(8000), sin_addr=inet_addr("127.0.0.1")}, 16) = 0
socket(AF_INET, SOCK_STREAM, IPPROTO_TCP) = 4
connect(4, {sa_family=AF_INET, sin_port=htons(8000), sin_addr=inet_addr("127.0.0.1")}, 16) = 0
socket(AF_INET, SOCK_STREAM, IPPROTO_TCP) = 4
connect(4, {sa_family=AF_INET, sin_port=htons(8000), sin_addr=inet_addr("127.0.0.1")}, 16) = 0
socket(AF_INET, SOCK_STREAM, IPPROTO_TCP) = 4
connect(4, {sa_family=AF_INET, sin_port=htons(8000), sin_addr=inet_addr("127.0.0.1")}, 16) = 0
```
Good (v2.4.3):
```
(...)
socket(AF_INET, SOCK_STREAM, IPPROTO_TCP) = 4
fcntl(4, F_SETFL, O_RDONLY|O_NONBLOCK) = 0
connect(4, {sa_family=AF_INET, sin_port=htons(8000), sin_addr=inet_addr("127.0.0.1")}, 16) = -1 EINPROGRESS (Operation now i n progress)
```
In the first case `fcntl` is never called and the socket stays in the default (blocking) mode.
This is due to the following condition in `shout_connection_connect`:
```C
if (con->nonblocking == SHOUT_BLOCKING_DEFAULT)
shout_connection_set_nonblocking(con, shout_get_nonblocking(shout));
```
But as `con->nonblocking` is never initialized to this value, it's effectively `if(0)`.
Adding a simple:
```C
con->nonblocking = SHOUT_BLOCKING_DEFAULT;
```
to `shout_connection_new` fixes the problem. But this turns the above condition into `if(1)`, so is it really needed? It was not there before. What's the idea behind this?https://gitlab.xiph.org/xiph/icecast-server/-/issues/2381Multimedia signing key expired for openSUSE OBS Multimedia2022-04-12T14:00:12ZTom ZetMultimedia signing key expired for openSUSE OBS MultimediaThe Multimedia signing key as written in here [wiki.xiph.org](https://wiki.xiph.org/index.php?title=Icecast_Server/Installing_latest_version_(official_Xiph_repositories)&mobileaction=toggle_view_desktop) expired 2020-01-30.The Multimedia signing key as written in here [wiki.xiph.org](https://wiki.xiph.org/index.php?title=Icecast_Server/Installing_latest_version_(official_Xiph_repositories)&mobileaction=toggle_view_desktop) expired 2020-01-30.Thomas B. RückerThomas B. Rückerhttps://gitlab.xiph.org/xiph/libxspf/-/issues/1212[crash] Interger underflow2020-12-01T17:25:12ZJinho Jung[crash] Interger underflowAffected component(s)
======================
- libxspf project(makeUriString function)
- uriparser project (uriToStringCharsRequiredA function)
Attack vector(s)
================
Adversary sends crafted movie playlist file and victim o...Affected component(s)
======================
- libxspf project(makeUriString function)
- uriparser project (uriToStringCharsRequiredA function)
Attack vector(s)
================
Adversary sends crafted movie playlist file and victim opens it with media player which is using libxspf library (such as VLC player).
Suggested description of the vulnerability for use in the CVE
===============================================================
makeUriString() function from Xspf class trusts the return values (i.e., int* charsRequired) from uriparser library; thus assumes positive value.
However, "uriparser" library's uriToStringCharsRequired() functions returns negative value on crafted URI string such as "http://example.co@" (actually the function should return NULL).
Due to this integer underflow, the code meets crash with heap alloction failure.
* libxspf
```c
XML_Char * makeUriString(UriUri const & uri) {
XML_Char * uriString;
int charsRequired;
if (uriToStringCharsRequired(&uri, &charsRequired) != URI_SUCCESS) {
// the uriparse should have return NULL!
return NULL;
}
charsRequired++;
// negative value are inserted to charsRequired (e.g., 0xffffffffff9e5331)
// allocator error here!
uriString = new XML_Char[charsRequired];
if (uriToString(uriString, &uri, charsRequired, NULL) != URI_SUCCESS) {
delete [] uriString;
return NULL;
}
return uriString;
}
```
Discoverer
===========
Jinho Jung (jinho.jung@gatech.edu, Georgia Institute of Technology)
Reference
=========
N/A
Additional Information
======================
1. PoC:
https://ffs.gtisc.gatech.edu/download/ca3502e783138c47/#WQ_4uRrb_CSkyHvA5fpJMg
2. How to reproduce
we use example application from libxspf
1) find read.cpp file and modify the file name to PoC's
2) compile and run the read program
3. We also report this problem to uriparser project teamhttps://gitlab.xiph.org/xiph/icecast-server/-/issues/2380Invalid JSON structure when title is empty2020-10-11T11:37:16ZEdwin HermannInvalid JSON structure when title is emptyBelow is a snippet of the JSON structure returned from /status-json.xsl when the song title is empty:
```
"stream_start":"Mon, 28 Oct 2019 10:49:00 +1300",
"stream_start_iso8601":"2019-10-28T10:49:00+1300",
...Below is a snippet of the JSON structure returned from /status-json.xsl when the song title is empty:
```
"stream_start":"Mon, 28 Oct 2019 10:49:00 +1300",
"stream_start_iso8601":"2019-10-28T10:49:00+1300",
"title": - ,
"dummy":null
}
```
The problem item here is "title". The resulting JSON string does not parse correctly because of the hyphen. To fix the bug, the hyphen should be enclosed in double-quotes.
The server whence this came is not mine so I am not able to determine why it is that the Icecast server is returning an unquoted hyphen. The server concerned has been that way for several days; the URL is http://219.89.83.33:8000/status-json.xslhttps://gitlab.xiph.org/xiph/icecast-libshout/-/issues/2312Use-after-free bug after reopening connection2020-10-21T08:50:27ZAlexander MilosUse-after-free bug after reopening connectionHello,
There have recently been some issues when using libshout in combination with MPD (the Music Player Daemon) which, after some investigation in collaboration with the author of MPD, have apparently been tracked to a bug in libshout...Hello,
There have recently been some issues when using libshout in combination with MPD (the Music Player Daemon) which, after some investigation in collaboration with the author of MPD, have apparently been tracked to a bug in libshout. MPD's author reported the issue but did so on your GitHub mirror, so in case you may have missed it I saw fit to report it here as well.
The gist of that bug report is as follows:
"Since libshout 2.4.2, the library crashes due to a use-after-free and double-free bug if an application reopens the connection using shout_open() after a previous connection with the same shout_t had been closed by shout_close().
See [MusicPlayerDaemon/MPD#622](https://github.com/MusicPlayerDaemon/MPD/issues/622) for details and valgrind logs.
The crash bug was introduced by commit 3110fe32"
The original bug report is here: [xiph/Icecast-libshout#17](https://github.com/xiph/Icecast-libshout/issues/17)Philipp SchafftPhilipp Schaffthttps://gitlab.xiph.org/xiph/icecast-website/-/issues/20513rd party apps page - broken links2020-06-14T10:41:49ZYahav3rd party apps page - broken linksHey
There are two broken links at the 3rd party apps page:
KRADradio and FreeJ
I wasn't able to create a PR.
CheersHey
There are two broken links at the 3rd party apps page:
KRADradio and FreeJ
I wasn't able to create a PR.
Cheershttps://gitlab.xiph.org/xiph/icecast-server/-/issues/2377Icecast leaks memory in speex module when probing for codecs2019-06-28T08:06:23ZPhilipp SchafftIcecast leaks memory in speex module when probing for codecsIcecast currently leaks memory in codec probing within the speex module. This happens if the initial packet has less then 80 bytes.Icecast currently leaks memory in codec probing within the speex module. This happens if the initial packet has less then 80 bytes.Philipp SchafftPhilipp Schafft2019-06-28https://gitlab.xiph.org/xiph/icecast-common/-/issues/5There should be a generic IO layer2019-06-30T10:52:33ZPhilipp SchafftThere should be a generic IO layerThere should be a generic IO layer for files/sockets/.... It should also be used for the logging support.There should be a generic IO layer for files/sockets/.... It should also be used for the logging support.Philipp SchafftPhilipp Schaffthttps://gitlab.xiph.org/xiph/icecast-libshout/-/issues/2310libshout connects to the same port for ICY data and metadata connections2020-10-21T08:50:27ZPhilipp Schafftlibshout connects to the same port for ICY data and metadata connectionslibshout does the port increment for ICY data connections unconditionally and therefore also for metadata connections.
This is part of the multi-topic ticket #2308.libshout does the port increment for ICY data connections unconditionally and therefore also for metadata connections.
This is part of the multi-topic ticket #2308.Philipp SchafftPhilipp Schaffthttps://gitlab.xiph.org/xiph/icecast-libshout/-/issues/2309libshout's connection state maschine does not honor connection specific block...2020-10-21T08:50:27ZPhilipp Schafftlibshout's connection state maschine does not honor connection specific blocking settingCurrently libshout's connection state machine overrides it's own blocking setting in `shout_connection_connect()`:
```c
shout_connection_set_nonblocking(con, shout_get_nonblocking(shout));
```
Using the setting from the parent objec...Currently libshout's connection state machine overrides it's own blocking setting in `shout_connection_connect()`:
```c
shout_connection_set_nonblocking(con, shout_get_nonblocking(shout));
```
Using the setting from the parent object should only be the default if no specific value was set.
See also: #2308Philipp SchafftPhilipp Schafft2019-06-28https://gitlab.xiph.org/xiph/icecast-libshout/-/issues/2308Source clients experience issues with 2.4.2 and latest release 2.4.32020-02-17T20:23:01ZThomas B. RückerSource clients experience issues with 2.4.2 and latest release 2.4.3Migrated from GitHub: https://github.com/xiph/Icecast-libshout/issues/14
Users report random "hangs" and being unable to connect. We need a better understanding of what goes wrong on a technical level.Migrated from GitHub: https://github.com/xiph/Icecast-libshout/issues/14
Users report random "hangs" and being unable to connect. We need a better understanding of what goes wrong on a technical level.Philipp SchafftPhilipp Schaffthttps://gitlab.xiph.org/xiph/icecast-libshout/-/issues/2307Missing libssl when linking statically2019-05-22T09:06:43ZJörg KrauseMissing libssl when linking staticallyStatic linking userspace programs such as mpd against libshout
currently doesn't work out of the box, because libshout is linked
against libssl, but this isn't expressed in libshouts pkg-config
file:
```
/usr/lib/libshout.a(tls.o): In f...Static linking userspace programs such as mpd against libshout
currently doesn't work out of the box, because libshout is linked
against libssl, but this isn't expressed in libshouts pkg-config
file:
```
/usr/lib/libshout.a(tls.o): In function `tls_check_cert':
tls.c:(.text+0x10): undefined reference to `SSL_get_peer_certificate'
tls.c:(.text+0x24): undefined reference to `SSL_get_verify_result'
tls.c:(.text+0x4c): undefined reference to `X509_get_subject_name'
tls.c:(.text+0x60): undefined reference to `X509_NAME_get_text_by_NID'
tls.c:(.text+0x118): undefined reference to `X509_NAME_get_entry'
tls.c:(.text+0x11c): undefined reference to `X509_NAME_ENTRY_get_data'
tls.c:(.text+0x120): undefined reference to `ASN1_STRING_length'
tls.c:(.text+0x148): undefined reference to `X509_free'
tls.c:(.text+0x178): undefined reference to `X509_NAME_get_index_by_NID'
```
Since OpenSSL installs its own .pc files, make sure that @SHOUT_REQUIRES@
contains `libssl`.
This issue is fixed by:
``` diff
diff --git a/configure.ac b/configure.ac
index 85f18ad..2b9c505 100644
--- a/configure.ac
+++ b/configure.ac
@@ -197,6 +197,10 @@ XIPH_PATH_OPENSSL([
])
AC_SUBST([SHOUT_TLS])
AM_CONDITIONAL([HAVE_TLS], [test -n "$OPENSSL_LIBS"])
+if test "$SHOUT_TLS" = "1"
+then
+ SHOUT_REQUIRES="$SHOUT_REQUIRES, libssl"
+fi
SHOUT_VERSION="$VERSION"
SHOUT_CPPFLAGS="-I$shout_includedir $VORBIS_CFLAGS $PTHREAD_CPPFLAGS"
--
2.9.3
```Philipp SchafftPhilipp Schaffthttps://gitlab.xiph.org/xiph/icecast-libshout/-/issues/2306[PATCH] Fix build failure due to incorrect include ordering2020-10-21T08:50:27ZJoshua Root[PATCH] Fix build failure due to incorrect include orderingCommit 627da3d8 made an incorrect change: INCLUDES should have been changed to AM_CPPFLAGS rather than its contents being moved to AM_CFLAGS. Putting preprocessor flags in AM_CFLAGS results in them being passed in the wrong order relativ...Commit 627da3d8 made an incorrect change: INCLUDES should have been changed to AM_CPPFLAGS rather than its contents being moved to AM_CFLAGS. Putting preprocessor flags in AM_CFLAGS results in them being passed in the wrong order relative to CPPFLAGS, which results in build failure when a previous version of libshout is installed and its headers are in the same place as those of its dependencies.
Downstream bug: https://trac.macports.org/ticket/58466
[Makefile.am.patch](/uploads/bf297f2da070f02f791e49f0800e6205/Makefile.am.patch)Philipp SchafftPhilipp Schaffthttps://gitlab.xiph.org/xiph/icecast-server/-/issues/2374Double quote in user agent causes malfomed log file2019-07-28T07:50:31ZNeil PalmerDouble quote in user agent causes malfomed log fileSome devices include a double quote character in their user agent.
The icecast log file quotes the user agent field, but does not escape any quotes inside of this, causing an invalid format.
Example:
> "Mozilla/5.0 (Linux; Android 5....Some devices include a double quote character in their user agent.
The icecast log file quotes the user agent field, but does not escape any quotes inside of this, causing an invalid format.
Example:
> "Mozilla/5.0 (Linux; Android 5.1; Alba 8" Build/LMY47I) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.91 Safari/537.36"https://gitlab.xiph.org/xiph/speex/-/issues/2039fixed-point-debug fails to build2020-07-23T15:12:53ZTristan Matthewsfixed-point-debug fails to build```
./autogen.sh && ./configure --enable-fixe-point-debug && make V=99
# some time later...
/bin/bash ../libtool --tag=CC --mode=link gcc -g -O2 -fvisibility=hidden -Wall -no-undefined -version-info 6:1:5 -o libspeex.la -rpath /us...```
./autogen.sh && ./configure --enable-fixe-point-debug && make V=99
# some time later...
/bin/bash ../libtool --tag=CC --mode=link gcc -g -O2 -fvisibility=hidden -Wall -no-undefined -version-info 6:1:5 -o libspeex.la -rpath /usr/local/lib cb_search.lo exc_10_32_table.lo exc_8_128_table.lo filters.lo gain_table.lo hexc_table.lo high_lsp_tables.lo lsp.lo ltp.lo speex.lo stereo.lo vbr.lo vq.lo bits.lo exc_10_16_table.lo exc_20_32_table.lo exc_5_256_table.lo exc_5_64_table.lo gain_table_lbr.lo hexc_10_32_table.lo lpc.lo lsp_tables_nb.lo modes.lo modes_wb.lo nb_celp.lo quant_lsp.lo sb_celp.lo speex_callbacks.lo speex_header.lo window.lo -lm
libtool: link: gcc -shared -fPIC -DPIC .libs/cb_search.o .libs/exc_10_32_table.o .libs/exc_8_128_table.o .libs/filters.o .libs/gain_table.o .libs/hexc_table.o .libs/high_lsp_tables.o .libs/lsp.o .libs/ltp.o .libs/speex.o .libs/stereo.o .libs/vbr.o .libs/vq.o .libs/bits.o .libs/exc_10_16_table.o .libs/exc_20_32_table.o .libs/exc_5_256_table.o .libs/exc_5_64_table.o .libs/gain_table_lbr.o .libs/hexc_10_32_table.o .libs/lpc.o .libs/lsp_tables_nb.o .libs/modes.o .libs/modes_wb.o .libs/nb_celp.o .libs/quant_lsp.o .libs/sb_celp.o .libs/speex_callbacks.o .libs/speex_header.o .libs/window.o -lm -g -O2 -Wl,-soname -Wl,libspeex.so.1 -o .libs/libspeex.so.1.5.1
libtool: link: (cd ".libs" && rm -f "libspeex.so.1" && ln -s "libspeex.so.1.5.1" "libspeex.so.1")
libtool: link: (cd ".libs" && rm -f "libspeex.so" && ln -s "libspeex.so.1.5.1" "libspeex.so")
libtool: link: ar cru .libs/libspeex.a cb_search.o exc_10_32_table.o exc_8_128_table.o filters.o gain_table.o hexc_table.o high_lsp_tables.o lsp.o ltp.o speex.o stereo.o vbr.o vq.o bits.o exc_10_16_table.o exc_20_32_table.o exc_5_256_table.o exc_5_64_table.o gain_table_lbr.o hexc_10_32_table.o lpc.o lsp_tables_nb.o modes.o modes_wb.o nb_celp.o quant_lsp.o sb_celp.o speex_callbacks.o speex_header.o window.o
ar: `u' modifier ignored since `D' is the default (see `U')
libtool: link: ranlib .libs/libspeex.a
libtool: link: ( cd ".libs" && rm -f "libspeex.la" && ln -s "../libspeex.la" "libspeex.la" )
gcc -DHAVE_CONFIG_H -I. -I.. -I../include -I../include/speex -I.. -g -O2 -fvisibility=hidden -Wall -MT testenc.o -MD -MP -MF .deps/testenc.Tpo -c -o testenc.o testenc.c
testenc.c: In function ‘main’:
testenc.c:83:7: warning: ignoring return value of ‘fread’, declared with attribute warn_unused_result [-Wunused-result]
fread(in_short, sizeof(short), FRAME_SIZE, fin);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mv -f .deps/testenc.Tpo .deps/testenc.Po
/bin/bash ../libtool --tag=CC --mode=link gcc -g -O2 -fvisibility=hidden -Wall -o testenc testenc.o libspeex.la -lm
libtool: link: gcc -g -O2 -fvisibility=hidden -Wall -o .libs/testenc testenc.o ./.libs/libspeex.so -lm
testenc.o: In function `main':
/home/tmatth/speex/libspeex/testenc.c:136: undefined reference to `spx_mips'
collect2: error: ld returned 1 exit status
Makefile:510: recipe for target 'testenc' failed
make[2]: *** [testenc] Error 1
make[2]: Leaving directory '/home/tmatth/speex/libspeex'
Makefile:508: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/tmatth/speex'
Makefile:394: recipe for target 'all' failed
make: *** [all] Error 2
```
Other info:
```
~/speex/libspeex$ nm testenc.o
U exit
U fclose
U feof
U fopen
U __fprintf_chk
U fread
U fwrite
U _GLOBAL_OFFSET_TABLE_
0000000000000000 r .LC1
0000000000000044 r .LC10
0000000000000000 r .LC2
0000000000000003 r .LC3
0000000000000007 r .LC4
000000000000000a r .LC5
0000000000000000 r .LC6
0000000000000000 r .LC7
0000000000000027 r .LC8
0000000000000008 r .LC9
U log10
0000000000000000 T main
U __printf_chk
U rewind
U speex_bits_destroy
U speex_bits_init
U speex_bits_reset
U speex_bits_rewind
U speex_bits_write
U speex_decode_int
U speex_decoder_ctl
U speex_decoder_destroy
U speex_decoder_init
U speex_encode_int
U speex_encoder_ctl
U speex_encoder_destroy
U speex_encoder_init
U speex_nb_mode
U speex_std_char_handler
U speex_std_mode_request_handler
U spx_mips
U __stack_chk_fail
U stderr
```
and
```
nm .libs/libspeex.so
U acos@@GLIBC_2.2.5
0000000000014fe0 r attenuation
0000000000218120 B __bss_start
0000000000004420 t bw_lpc
U calloc@@GLIBC_2.2.5
0000000000014800 r cdbk_nb
0000000000014440 r cdbk_nb_high1
0000000000014300 r cdbk_nb_high2
00000000000146c0 r cdbk_nb_low1
0000000000014580 r cdbk_nb_low2
0000000000218120 b completed.7696
00000000000049a0 t compute_impulse_response
000000000000dbb0 t compute_quant_weights
0000000000004700 t compute_rms
0000000000004780 t compute_rms16
0000000000002840 t compute_weighted_codebook.isra.0
w __cxa_finalize@@GLIBC_2.2.5
0000000000002760 t deregister_tm_clones
00000000000027f0 t __do_global_dtors_aux
00000000002173f8 t __do_global_dtors_aux_fini_array_entry
0000000000218118 d __dso_handle
0000000000217d98 d _DYNAMIC
0000000000218120 D _edata
0000000000218130 B _end
0000000000013280 r e_ratio_quant
0000000000013270 r e_ratio_quant_bounds
00000000000137c0 r exc_10_16_table
0000000000012120 r exc_10_32_table
0000000000013860 r exc_20_32_table
0000000000013ae0 r exc_5_256_table
0000000000013fe0 r exc_5_64_table
0000000000012260 r exc_8_128_table
0000000000015008 r exc_gain_quant_scal1
0000000000015010 r exc_gain_quant_scal1_bound
0000000000015020 r exc_gain_quant_scal3
0000000000015040 r exc_gain_quant_scal3_bound
U exit@@GLIBC_2.2.5
U exp@@GLIBC_2.2.5
0000000000004160 t filter_mem16
0000000000003fb0 t filter_mem16_10
00000000000040c0 t filter_mem16_8
00000000000120b8 T _fini
0000000000004400 t fir_mem16
00000000000042d0 t fir_mem16_10
0000000000004390 t fir_mem16_8
00000000000155a0 r fold_quant_bound
00000000000077d0 t forced_pitch_quant
0000000000007990 t forced_pitch_unquant
U __fprintf_chk@@GLIBC_2.3.4
U fputc@@GLIBC_2.2.5
0000000000002830 t frame_dummy
00000000002173f0 t __frame_dummy_init_array_entry
0000000000017378 r __FRAME_END__
U free@@GLIBC_2.2.5
0000000000014120 r gain_cdbk_lbr
0000000000012720 r gain_cdbk_nb
0000000000015620 r gc_quant_bound
0000000000218000 d _GLOBAL_OFFSET_TABLE_
w __gmon_start__
0000000000015a6c r __GNU_EH_FRAME_HDR
00000000000154a0 r h0
00000000000141a0 r hexc_10_32_table
0000000000012920 r hexc_table
0000000000012f20 r high_lsp_cdbk
0000000000012d20 r high_lsp_cdbk2
00000000000044b0 t highpass
00000000000042b0 t iir_mem16
0000000000004180 t iir_mem16_10
0000000000004240 t iir_mem16_8
00000000000024e0 T _init
0000000000005dd0 t inner_prod
0000000000003d80 t interp_pitch.constprop.0
w _ITM_deregisterTMCloneTable
w _ITM_registerTMCloneTable
0000000000015a40 r lag_window
U log@@GLIBC_2.2.5
0000000000005500 t lpc_to_lsp
0000000000015720 r lpc_window
0000000000005cc0 t lsp_interpolate
000000000000dd20 t lsp_quant.constprop.1
000000000000e6f0 t lsp_quant_high
000000000000e2f0 t lsp_quant_lbr
000000000000dde0 t lsp_quant_nb
0000000000005a50 t lsp_to_lpc
000000000000e950 t lsp_unquant_high
000000000000e580 t lsp_unquant_lbr
000000000000e0b0 t lsp_unquant_nb
000000000000dc60 t lsp_weight_quant.constprop.0
0000000000217910 d ltp_params_lbr
0000000000217900 d ltp_params_med
0000000000217930 d ltp_params_nb
0000000000217920 d ltp_params_vlbr
U memcpy@@GLIBC_2.14
U memmove@@GLIBC_2.2.5
U memset@@GLIBC_2.2.5
0000000000005110 t multicomb
000000000000c760 t nb_decode
000000000000c3d0 t nb_decoder_ctl
000000000000c3c0 t nb_decoder_destroy
000000000000c290 t nb_decoder_init
000000000000a770 t nb_encode
000000000000a0f0 t nb_encoder_ctl
000000000000a0d0 t nb_encoder_destroy
0000000000009f60 t nb_encoder_init
0000000000217400 d nb_mode
0000000000007cc0 t nb_mode_query
00000000002177e0 d nb_submode1
0000000000217720 d nb_submode2
00000000002176c0 d nb_submode3
0000000000217660 d nb_submode4
0000000000217600 d nb_submode5
00000000002175a0 d nb_submode6
0000000000217540 d nb_submode7
0000000000217780 d nb_submode8
0000000000003c50 t noise_codebook_quant
0000000000003d10 t noise_codebook_unquant
0000000000006000 t open_loop_nbest_pitch
00000000000065a0 t pitch_search_3tap
0000000000007450 t pitch_unquant_3tap
0000000000005e40 t pitch_xcorr
U pow@@GLIBC_2.2.5
0000000000004b60 t qmf_decomp
0000000000004dc0 t qmf_synth
U realloc@@GLIBC_2.2.5
00000000000027a0 t register_tm_clones
00000000000048a0 t residue_percep_zero16
0000000000004460 t sanitize_values32
0000000000011190 t sb_decode
000000000000eab0 t sb_decode_lost
0000000000010d30 t sb_decoder_ctl
0000000000010cd0 t sb_decoder_destroy
0000000000010b10 t sb_decoder_init
000000000000f810 t sb_encode
000000000000ef90 t sb_encoder_ctl
000000000000ef10 t sb_encoder_destroy
000000000000ec40 t sb_encoder_init
00000000002179a0 d sb_uwb_mode
0000000000217ae0 d sb_wb_mode
00000000000094f0 t scal_quant
0000000000009530 t scal_quant32
0000000000012660 r shift_filt
00000000000046c0 t signal_div
0000000000004680 t signal_mul
0000000000009b70 T speex_bits_advance
0000000000009560 T speex_bits_destroy
00000000000095a0 T speex_bits_init
00000000000095e0 T speex_bits_init_buffer
0000000000009bf0 T speex_bits_insert_terminator
0000000000009be0 T speex_bits_nbytes
00000000000098d0 T speex_bits_pack
0000000000009b30 T speex_bits_peek
0000000000009ab0 T speex_bits_peek_unsigned
0000000000009610 T speex_bits_read_from
0000000000009710 T speex_bits_read_whole_bytes
0000000000009bb0 T speex_bits_remaining
0000000000009580 T speex_bits_reset
0000000000009600 T speex_bits_rewind
0000000000009540 T speex_bits_set_bit_buffer
0000000000009a90 T speex_bits_unpack_signed
00000000000099f0 T speex_bits_unpack_unsigned
0000000000009c40 T speex_bits_write
0000000000009860 T speex_bits_write_whole_bytes
0000000000007a80 T speex_decode
0000000000007b60 T speex_decode_int
0000000000007a60 t speex_decode_native
0000000000007b50 T speex_decoder_ctl
0000000000007a40 T speex_decoder_destroy
0000000000007a20 T speex_decoder_init
00000000000082f0 T speex_decode_stereo
0000000000008470 T speex_decode_stereo_int
0000000000011de0 T speex_default_user_handler
0000000000007a70 T speex_encode
0000000000007aa0 T speex_encode_int
0000000000007a50 t speex_encode_native
0000000000007a90 T speex_encoder_ctl
0000000000007a30 T speex_encoder_destroy
0000000000007a10 T speex_encoder_init
0000000000007e50 T speex_encode_stereo
0000000000008060 T speex_encode_stereo_int
0000000000002720 t _speex_fatal.constprop.0
00000000000120b0 T speex_header_free
0000000000011f40 T speex_header_to_packet
0000000000011ae0 T speex_inband_handler
0000000000011e10 T speex_init_header
0000000000007d50 T speex_lib_ctl
0000000000009f40 T speex_lib_get_mode
0000000000217d80 D speex_mode_list
0000000000009ea0 T speex_mode_query
00000000002174e0 D speex_nb_mode
0000000000011fa0 T speex_packet_to_header
0000000000011dc0 T speex_std_char_handler
0000000000011cf0 T speex_std_enh_request_handler
0000000000011c30 T speex_std_high_mode_request_handler
0000000000011bd0 T speex_std_low_mode_request_handler
0000000000011b70 T speex_std_mode_request_handler
00000000000085f0 T speex_std_stereo_request_handler
0000000000011d50 T speex_std_vbr_quality_request_handler
0000000000011c90 T speex_std_vbr_request_handler
0000000000007e40 T speex_stereo_state_destroy
0000000000007e20 T speex_stereo_state_init
0000000000007df0 T speex_stereo_state_reset
0000000000217940 D speex_uwb_mode
0000000000217a80 D speex_wb_mode
0000000000217d60 d split_cb_high
0000000000217d40 d split_cb_high_lbr
0000000000217880 d split_cb_nb
00000000002178a0 d split_cb_nb_lbr
0000000000217860 d split_cb_nb_med
00000000002178c0 d split_cb_nb_ulbr
00000000002178e0 d split_cb_nb_vlbr
0000000000217840 d split_cb_sb
0000000000002ac0 t split_cb_search_shape_sign
0000000000003aa0 t split_cb_shape_sign_unquant
0000000000009df0 t _spx_autocorr
0000000000009cc0 t _spx_lpc
0000000000218128 b spx_mips
U sqrtf@@GLIBC_2.2.5
U sqrt@@GLIBC_2.2.5
U __stack_chk_fail@@GLIBC_2.4
U stderr@@GLIBC_2.2.5
0000000000004790 t syn_percep_zero16
0000000000218120 d __TMC_END__
00000000000086f0 t vbr_analysis
0000000000009100 t vbr_destroy
0000000000013320 r vbr_hb_thresh
0000000000008690 t vbr_init
0000000000013400 r vbr_nb_thresh
00000000000132c0 r vbr_uhb_thresh
0000000000009110 t vq_nbest
00000000000092d0 t vq_nbest_sign
0000000000009eb0 t wb_mode_query
0000000000014fc0 r wb_skip_table
0000000000217ce0 d wb_submode1
0000000000217c80 d wb_submode2
0000000000217c20 d wb_submode3
0000000000217bc0 d wb_submode4
```