Xiph.Org issueshttps://gitlab.xiph.org/groups/xiph/-/issues2008-10-21T01:35:06Zhttps://gitlab.xiph.org/xiph/theora/-/issues/1419cpuid instruction detection function oc_detect_cpuid_helper is buggy2008-10-21T01:35:06Zmartins.mozeikocpuid instruction detection function oc_detect_cpuid_helper is buggyIn [lib/cpu.c](https://trac.xiph.org/browser/trunk/theora/lib/cpu.c) there is cpuid instruction detection function [oc_detect_cpuid_helper](https://trac.xiph.org/browser/trunk/theora/lib/cpu.c#L80) used for MSVC. Currently it just overwr...In [lib/cpu.c](https://trac.xiph.org/browser/trunk/theora/lib/cpu.c) there is cpuid instruction detection function [oc_detect_cpuid_helper](https://trac.xiph.org/browser/trunk/theora/lib/cpu.c#L80) used for MSVC. Currently it just overwrites values of arguments (two pointers _eax and _ebx) with contents of eax and ebx registers:
```
mov [_eax],eax
mov [_ebx],ebx
```
It should be replaced with following code:
```
mov ecx,_eax
mov [ecx],eax
mov ecx,_ebx
mov [ecx],ebx
```
For me this bug always prevents to use cpuid instruction (didn't return correct values of eax and ebx) - therefore no MMX optimizations.
I'm using Micorosft Visual C++ 2008 Express Edition SP1 compiler.Monty MontgomeryMonty Montgomeryhttps://gitlab.xiph.org/xiph/theora/-/issues/1363Version string not updated in INTERNAL.H2008-10-21T01:15:59ZGitlab BotVersion string not updated in INTERNAL.H```
# define OC_VENDOR_STRING "Xiph.Org libTheora I 20071025 3 2 1"
```
https://trac.xiph.org/browser/trunk/theora/lib/internal.h?rev=14829
LibTheora 1.0b3
```
# define OC_VENDOR_STRING "Xiph.Org libTheora I 20071025 3 2 1"
```
https://trac.xiph.org/browser/trunk/theora/lib/internal.h?rev=14829
LibTheora 1.0b3
https://gitlab.xiph.org/xiph/vorbis-tools/-/issues/1439vorbiscomment gives a SIGSEGV (segmentation fault) with --tag2008-10-15T22:02:04Zjcreighvorbiscomment gives a SIGSEGV (segmentation fault) with --tagI expected --tag to work exactly like -t. Instead, it causes a segfault whenever it appears in the command line.
```
[from SVN checkout of R15399]
~/src/vorbis-tools/vorbiscomment$ ./vorbiscomment --version
vorbiscomment from vorbis-too...I expected --tag to work exactly like -t. Instead, it causes a segfault whenever it appears in the command line.
```
[from SVN checkout of R15399]
~/src/vorbis-tools/vorbiscomment$ ./vorbiscomment --version
vorbiscomment from vorbis-tools 1.3.0
~/src/vorbis-tools/vorbiscomment$ ./vorbiscomment --tag
Segmentation fault
~/src/vorbis-tools/vorbiscomment$ ./vorbiscomment -t
./vorbiscomment: option requires an argument -- t
vorbiscomment from vorbis-tools 1.3.0
by the Xiph.Org Foundation (http://www.xiph.org/)
<snip usage>
```
I realize it's incorrect to call --tag with no arguments, but the bug manifests with or without an argument. It appears to be somewhere in the option parsing:
```
~/src/vorbis-tools/vorbiscomment$ gdb ./vorbiscomment
GNU gdb 6.8-debian
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu"...
(gdb) run --tag
Starting program: /home/jason/src/vorbis-tools/vorbiscomment/vorbiscomment --tag
Program received signal SIGSEGV, Segmentation fault.
0x00007f033f96e050 in strlen () from /lib/libc.so.6
(gdb) bt
#0 0x00007f033f96e050 in strlen () from /lib/libc.so.6
#1 0x00007f033f96dd86 in strdup () from /lib/libc.so.6
#2 0x00000000004038c4 in parse_options (argc=2, argv=0x7fff48512aa8, param=0x22c0050) at vcomment.c:524
#3 0x0000000000403dd6 in main (argc=2, argv=0x7fff48512aa8) at vcomment.c:176
(gdb)
```
I was able to reproduce this bug with trunk (revision 15399) and 1.2.0. This is on amd64 box running debian testing.
IvoIvohttps://gitlab.xiph.org/xiph/oggdsf/-/issues/1440A debug log file is created during playback2008-10-15T15:21:43ZGitlab BotA debug log file is created during playbackThe file "c:\demux.log" is created during playback. Happens with version 0.80.15039 of the OggCodecs package.
The file "c:\demux.log" is created during playback. Happens with version 0.80.15039 of the OggCodecs package.
Cristian AdamCristian Adamhttps://gitlab.xiph.org/xiph/theora/-/issues/1336uninitialised theora_info values2008-10-14T20:50:18ZGitlab Botuninitialised theora_info valuesOpening a ticket, just in case this problem was forgotten:
http://lists.xiph.org/pipermail/theora-dev/2008-January/003519.htmlOpening a ticket, just in case this problem was forgotten:
http://lists.xiph.org/pipermail/theora-dev/2008-January/003519.htmlhttps://gitlab.xiph.org/xiph/oggdsf/-/issues/1437many regsvr32.exe processes running, but none for long2008-10-10T19:55:27Zghersonmany regsvr32.exe processes running, but none for longAfter two install attempts of oggcodecs_0.71.0946.exe, Windows Media Player 9 series still reports an inability to play an ogg file ("0x80040241: Windows Media Player does not support this file type"). And many regsvr32.exe processes ar...After two install attempts of oggcodecs_0.71.0946.exe, Windows Media Player 9 series still reports an inability to play an ogg file ("0x80040241: Windows Media Player does not support this file type"). And many regsvr32.exe processes are running on my WinXP machine, but none for long. 10min later, they all suddenly die, each with window "regsvr32.exe Application Error" appearing with text "The application failed to initialize properly (0xc0000142). Click on OK to terminate the application."
My browser is Firefox 3.0.3. Thanks for your help.Cristian AdamCristian Adamhttps://gitlab.xiph.org/xiph/theora/-/issues/1435libtheora fails to build with msvc 2005 (files missing from source archive)2008-10-07T12:44:25ZGitlab Botlibtheora fails to build with msvc 2005 (files missing from source archive)Hello,
libtheora fails to build with vs 2005. I get messages like
Kompilieren...
state.c
..\..\..\lib\dec\state.c(24) : fatal error C1083: Datei (Include) kann nicht geöffnet werden: "x86_vc/x86int.h": No such file or directory
This ...Hello,
libtheora fails to build with vs 2005. I get messages like
Kompilieren...
state.c
..\..\..\lib\dec\state.c(24) : fatal error C1083: Datei (Include) kann nicht geöffnet werden: "x86_vc/x86int.h": No such file or directory
This is because the whole x86_vc folder is missing from the libtheora-beta3.tar.gz source archive (link to it is here: http://www.theora.org/downloads/ ). Including this folder would make the problem go away I assume. The folder is also present in SVN.
-Matthiashttps://gitlab.xiph.org/xiph/vorbis-tools/-/issues/1432oggenc instances started in the same second generate the same serial number2008-10-04T21:15:16Zmgoldoggenc instances started in the same second generate the same serial numberTwo copies of oggenc that start in the same second will generate output with the same serial number, which is a problem if the user wants to concatenate 2 or more of the output files (since all streams in a file must have unique serial n...Two copies of oggenc that start in the same second will generate output with the same serial number, which is a problem if the user wants to concatenate 2 or more of the output files (since all streams in a file must have unique serial numbers). These commands show the duplicate numbers:
```
$ dd if=/dev/urandom of=test.raw bs=4 count=44100
$ for x in {0..9} ; do oggenc -q5 --raw test.raw -o test$x.ogg; done
$ ogginfo test?.ogg |grep serial
```
This happens because the random number generator is only seeded using the time. XORing the time with the PID fixes this problem, though I'm not sure whether getpid() is available on all platforms.IvoIvohttps://gitlab.xiph.org/xiph/theora/-/issues/1434lib/enc/x86_64/dct_decode_mmx.c missing from EXTRA_DIST2008-10-04T20:45:21ZMonty Montgomerylib/enc/x86_64/dct_decode_mmx.c missing from EXTRA_DISTThe rc tarball doesn't build on x86_64 due to missing x86_64/dct_decode_mmx.c. Tarball appears to have been built without due to missing entry in EXTRA_DIST in Makefile.am.
Committing fix to SVN now, logging this bug so others see it.
The rc tarball doesn't build on x86_64 due to missing x86_64/dct_decode_mmx.c. Tarball appears to have been built without due to missing entry in EXTRA_DIST in Makefile.am.
Committing fix to SVN now, logging this bug so others see it.
https://gitlab.xiph.org/xiph/theora/-/issues/1372Many (minor) bugs in LibTheora 1.0b3, directory structure cleanup2008-10-04T20:44:06ZGitlab BotMany (minor) bugs in LibTheora 1.0b3, directory structure cleanupI found many (minor) bugs (?) in LibTheora 1.0b3, and possibility (?) for optimization of the dir structure :
----
1. Version string is not updated in INTERNAL.H
`# define OC_VENDOR_STRING "Xiph.Org libTheora I 20071025 3 2 1"`
I alr...I found many (minor) bugs (?) in LibTheora 1.0b3, and possibility (?) for optimization of the dir structure :
----
1. Version string is not updated in INTERNAL.H
`# define OC_VENDOR_STRING "Xiph.Org libTheora I 20071025 3 2 1"`
I already had whined about this here: https://trac.xiph.org/ticket/1363
----
2. Useless macro *HIGHBITDUPPED* defined 2x differently:
```
#define HIGHBITDUPPED(X) (((ogg_int16_t) X) >> 15)
#define HIGHBITDUPPED(X) (((signed short) X) >> 15)
```
In *DCTDECODE.C* and *ENCODE.C* .
In both files, it's used 1x only, so the IMHO solution is to delete it and replace with "direct" implementation using *ogg_int16_t* in both files. About not using OGG integer typdef's , YES, I had already whined about this here: https://trac.xiph.org/ticket/1329 "BITWISE.C typedef's in LibOGG" . So deleting some more silly INT's , SHORT's and LONG's at this occasion would be great.
----
3. CPUID'ding is not completely barred out if "USE_ASM" isn't defined:
{{{void dsp_static_init(DspFunctions *funcs)
{
ogg_uint32_t cpuflags;
cpuflags = oc_cpu_flags_get ();
dsp_init (funcs);
dsp_recon_init (funcs, cpuflags);
dsp_dct_init (funcs, cpuflags);
#if defined(USE_ASM)
if (cpuflags & OC_CPU_X86_MMX) {
dsp_mmx_init(funcs);
}
# ifndef WIN32
/* This is implemented for win32 yet */
if (cpuflags & OC_CPU_X86_MMXEXT) {
dsp_mmxext_init(funcs);
}
# endif // WIN32
#endif // USE_ASM
}
}}}
Then IMHO "CPU.C" and "CPU.H" should get completely barred out from the compilaton, "oc_cpu_flags_get" not called, and "cpuflags" (correctly using "ogg_uint32_t" here :-) ) deleted also or set directly to 0 at least.
4. Directory structure: there are 2 dirs, "ENC" and "DEC" , plus some files elsewhere: "CPU.*" stuff above, some "*.H" files in "INCLUDE" . Compiling the decoder doesn't require any files from "ENC", OTOH the encoder requires __some__ files from "DEC" , nowhere documented what ones exactly, need to find out "the hard way" . Idea: create a directory "COMMON" and move the shared files into it.
5. "ENC" contains "ENCODER_DISABLED.C" ... useful ? Seems not to me ...
6. *_ilog* stuff is defined 2x differently:
```
static int _ilog(unsigned _v){
int ret;
for(ret=0;_v;ret++)_v>>=1;
return ret;
}
```
```
static int _ilog(unsigned int v){
int ret=0;
while(v){
ret++;
v>>=1;
}
return(ret);
}
```
IMHO 1 piece would be sufficient, using "ogg_uint32_t" for both "v" and "ret" , and a good candidate to be placed in "COMMON" , see 4. .
7. BITWISE duplicate:
```
- Use a custom copy of the libogg bitpacker in the decoder
to avoid function call overhead.
```
Why not in the encoder also ? Idea: rename "BITWISE.C" and "BITWISE.H" of LibTheora into "TBITWISE.C" and "TBITWISE.H" to avoid confusion with "BITWISE.*" from LibOGG and delete dependency of LibTheora on *.C files of LibOGG. I had already whined about lack of typedef's, efficiency, compatibility and docs of BITWISE here: https://trac.xiph.org/ticket/1329 "BITWISE.C typedef's in LibOGG" .
https://gitlab.xiph.org/xiph/vorbis-tools/-/issues/1386OGGDEC error in W32 binary 1.2.02008-09-28T17:09:13ZthealmightyguruOGGDEC error in W32 binary 1.2.0I'm using oggdec from the W32 binary version 1.2.0 on a Windows XP SP3 machine. While trying to run it from the command line on an ogg file I made using oggenc 1.2.0 I get the generic Windows error "oggdec.exe has encountered a problem a...I'm using oggdec from the W32 binary version 1.2.0 on a Windows XP SP3 machine. While trying to run it from the command line on an ogg file I made using oggenc 1.2.0 I get the generic Windows error "oggdec.exe has encountered a problem and needs to close."Michael SmithMichael Smithhttps://gitlab.xiph.org/xiph/oggdsf/-/issues/1390[PATCH] Ogg muxing filter doesn't support schroedinger codec2008-09-22T05:33:16Zm.b.lankhorst[PATCH] Ogg muxing filter doesn't support schroedinger codecI created a patch that implements this, please apply to oggdsf?I created a patch that implements this, please apply to oggdsf?Cristian AdamCristian Adamhttps://gitlab.xiph.org/xiph/theora/-/issues/1297[PATCH] Make a few tables constant2008-09-19T19:44:29ZDiego Elio Pettenò[PATCH] Make a few tables constantThe attached patch makes a few table constants, moving up to 2664 (for libtheora built with encoder) bytes from .data to .rodata.
Unfortunately the improvement here is mostly theorical, for shared object, as there are 1216 bytes (for 64...The attached patch makes a few table constants, moving up to 2664 (for libtheora built with encoder) bytes from .data to .rodata.
Unfortunately the improvement here is mostly theorical, for shared object, as there are 1216 bytes (for 64-bit systems) in .data.rel.ro.local caused by function pointers and TH_VP31_QUANT_INFO table. Those can be mitigated by a working prelink, so it's still useful to apply this patch.
https://gitlab.xiph.org/xiph/theora/-/issues/929Compliation error in MMX code2008-09-19T19:20:39ZjensgrCompliation error in MMX codeI get the following error when trying to compile alpha6.
```
x86_32/dsp_mmx.c:23: warning: `used' attribute directive ignored
x86_32/dsp_mmx.c: In function `sad8x8_thres__mmx':
x86_32/dsp_mmx.c:330: impossible register constraint in `a...I get the following error when trying to compile alpha6.
```
x86_32/dsp_mmx.c:23: warning: `used' attribute directive ignored
x86_32/dsp_mmx.c: In function `sad8x8_thres__mmx':
x86_32/dsp_mmx.c:330: impossible register constraint in `asm'
x86_32/dsp_mmx.c:330: `asm' needs too many reloads
make[2]: *** [libtheora_la-dsp_mmx.lo] Error 1
make[2]: Leaving directory `/usr/src/packages/BUILD/libtheora-1.0alpha6/lib'
```
Build works well using --disable-asm.
gcc is 2.95.3.https://gitlab.xiph.org/xiph/theora/-/issues/1294coverity scan of libtheora2008-09-19T18:23:51ZGitlab Botcoverity scan of libtheoraSeems that coverity did a scan of libtheora. Would be nice if someone will look at the (possible) defects they found, as already did with vorbis/speex.Seems that coverity did a scan of libtheora. Would be nice if someone will look at the (possible) defects they found, as already did with vorbis/speex.Michael SmithMichael Smithhttps://gitlab.xiph.org/xiph/theora/-/issues/1373libtheora package is missing the x86_vc subfolder2008-09-19T18:20:12Zramin.dalkouhilibtheora package is missing the x86_vc subfolderThe libtheora package is missing the visual studio related subfolder lib/dev/x86_vc which can be found from within the svn-trunk.The libtheora package is missing the visual studio related subfolder lib/dev/x86_vc which can be found from within the svn-trunk.https://gitlab.xiph.org/xiph/vorbis-tools/-/issues/1105[PATCH] Preliminary AU file format support in oggenc2008-09-12T01:50:20ZGitlab Bot[PATCH] Preliminary AU file format support in oggencThis file includes an initial implementation of the AU file format for the OGGENC program.
This way, OGG files can be produced for the VSOUND virtual sound card driver.
```
diff -rc vorbis-tools-1.1.1/oggenc/audio.c vorbis-tools-1.1.1a...This file includes an initial implementation of the AU file format for the OGGENC program.
This way, OGG files can be produced for the VSOUND virtual sound card driver.
```
diff -rc vorbis-tools-1.1.1/oggenc/audio.c vorbis-tools-1.1.1a/oggenc/audio.c
*** vorbis-tools-1.1.1/oggenc/audio.c 2005-06-13 15:11:44.000000000 +0200
--- vorbis-tools-1.1.1a/oggenc/audio.c 2006-11-27 13:01:01.000000000 +0100
***************
*** 14,19 ****
--- 14,20 ----
#include <string.h>
#include <sys/types.h>
#include <math.h>
+ #include <arpa/inet.h>
#ifdef HAVE_CONFIG_H
#include "config.h"
***************
*** 51,56 ****
--- 52,58 ----
{flac_id, 4, flac_open, flac_close, "flac", N_("FLAC file reader")},
{oggflac_id, 32, flac_open, flac_close, "ogg", N_("Ogg FLAC file reader")},
#endif
+ {au_id, sizeof(auhdr),au_open,au_close, "au",N_("AU file reader") },
{NULL, 0, NULL, NULL, NULL, NULL}
};
***************
*** 801,803 ****
--- 803,892 ----
free(d);
}
+ // ------------- Basic AU support --------------
+
+
+ // 1=OK
+ // 0=KO
+ int au_id(unsigned char *buf, int len)
+ {
+ if (len < sizeof(auhdr))
+ return 0;
+ if (memcmp(buf,".snd",4))
+ return 0;
+ return 1;
+ }
+
+ typedef union {
+ int16_t signed16;
+ uint16_t unsigned16;
+ } sixteen_bit;
+
+ long au_read(void *in, float **buffer, int samples)
+ {
+ wavfile *wav = (wavfile *)in;
+ unsigned char *buf = alloca(samples*wav->channels*2);
+ long bytes_read = fread(buf, 1, samples*2*wav->channels, wav->f);
+ int i,j;
+ long realsamples;
+ uint16_t *sample;
+ sixteen_bit converter;
+
+ realsamples = bytes_read / (2 * wav->channels);
+
+ sample = (uint16_t *)buf;
+
+ for(i = 0; i < realsamples; i++)
+ {
+ for(j=0; j < wav->channels; j++)
+ {
+ converter.unsigned16 = ntohs(*sample++);
+ buffer[j][i] = converter.signed16 / 32768.0f;
+ }
+ }
+
+ return realsamples;
+ }
+
+ int au_open(FILE *in,
+ oe_enc_opt *opt,
+ unsigned char *buf, int buflen)
+ {
+ auhdr auHdr;
+ wavfile *wav = malloc(sizeof(wavfile));
+ int dataOffset;
+
+ if (NULL == wav) {
+ fprintf(stderr,"out of memory opening AU driver\n");
+ }
+
+ rewind(in);
+ fread(&auHdr,1,sizeof(auHdr),in);
+
+ if (SND_FORMAT_LINEAR_16 != ntohl(auHdr.formatCode)) {
+ fprintf(stderr,"At this moment, only linear 16 bit .au files are supported\n");
+ return 0;
+ }
+ dataOffset = ntohl(auHdr.dataOffset);
+ opt->rate = ntohl(auHdr.samplingRate);
+ opt->channels = ntohl(auHdr.numberChannels);
+ opt->read_samples = au_read;
+ opt->total_samples_per_channel = ntohl(auHdr.dataBytes) / (2 * opt->channels);
+ opt->readdata = wav;
+
+ wav->channels = opt->channels;
+ wav->samplesize = 4;
+ wav->totalsamples = opt->total_samples_per_channel;
+ wav->samplesread = 0;
+ wav->f = in;
+
+ // ignore: short bigendian;
+
+ fseek(in,dataOffset,SEEK_SET);
+ return 1;
+ }
+
+ void au_close(void *info)
+ {
+ free(info);
+ }
diff -rc vorbis-tools-1.1.1/oggenc/audio.h vorbis-tools-1.1.1a/oggenc/audio.h
*** vorbis-tools-1.1.1/oggenc/audio.h 2005-06-03 12:15:10.000000000 +0200
--- vorbis-tools-1.1.1a/oggenc/audio.h 2006-11-27 13:30:19.000000000 +0100
***************
*** 5,10 ****
--- 5,12 ----
#include "encode.h"
#include <stdio.h>
+ #include <arpa/inet.h>
+
int setup_resample(oe_enc_opt *opt);
void clear_resample(oe_enc_opt *opt);
void setup_downmix(oe_enc_opt *opt);
***************
*** 66,70 ****
--- 68,89 ----
long wav_ieee_read(void *, float **buffer, int samples);
long raw_read_stereo(void *, float **buffer, int samples);
+
+ int au_open(FILE *in, oe_enc_opt *opt, unsigned char *buf, int buflen);
+ int au_id(unsigned char *buf, int len);
+ void au_close(void *);
+
+ typedef struct {
+ char magic[4];
+ uint32_t dataOffset;
+ uint32_t dataBytes;
+ uint32_t formatCode;
+ uint32_t samplingRate;
+ uint32_t numberChannels;
+ char optional[4];
+ } auhdr;
+
+ #define SND_FORMAT_LINEAR_16 3
+
#endif /* __AUDIO_H */
```
Michael SmithMichael Smithhttps://gitlab.xiph.org/xiph/vorbis-tools/-/issues/1112inconsistent version options between tools2008-09-09T21:04:19ZGitlab Botinconsistent version options between toolsSome tools uses -V, some other uses -v for showing the version:
-v:
oggdec
oggenc
-V:
ogg123
ogginfo
vorbiscomment
vcut has no such option.Some tools uses -V, some other uses -v for showing the version:
-v:
oggdec
oggenc
-V:
ogg123
ogginfo
vorbiscomment
vcut has no such option.Michael SmithMichael Smithhttps://gitlab.xiph.org/xiph/theora/-/issues/1423libtheora 1.0 beta3 fails tests if built without the encoder part and builds ...2008-09-08T00:43:58Zaballierlibtheora 1.0 beta3 fails tests if built without the encoder part and builds tests by default.Currently tests are built with make all while they should probably be built with make check.
Moreover, tests fail if I use --disable-encode at configure.
Enclosed patch should fix this, by using check_PROGRAMS instead of noinst and spl...Currently tests are built with make all while they should probably be built with make check.
Moreover, tests fail if I use --disable-encode at configure.
Enclosed patch should fix this, by using check_PROGRAMS instead of noinst and splitting the tests in two parts: encoder and decoder ones, running only the correct ones depending on the configure option.https://gitlab.xiph.org/xiph/theora/-/issues/1420Compilation problems with libtheora2008-09-05T23:34:09ZalanpaeCompilation problems with libtheoraHi there,
I'm trying to compile libtheora 1.0 beta 3 on a Solaris machine.
The command line is simply ./configure -C --disable-examples.
This bombs with the following error:
```
gcc -shared -Wl,-h -Wl,libtheoraenc.so.1 -o .libs/libth...Hi there,
I'm trying to compile libtheora 1.0 beta 3 on a Solaris machine.
The command line is simply ./configure -C --disable-examples.
This bombs with the following error:
```
gcc -shared -Wl,-h -Wl,libtheoraenc.so.1 -o .libs/libtheoraenc.so.1.0.0 .libs/cpu.o
.libs/dct_decode_mmx.o .libs/dsp_mmx.o .libs/dsp_mmxext.o .libs/recon_mmx.o .libs/idct_mmx.o
.libs/fdct_mmx.o .libs/dct_encode.o .libs/encode.o .libs/encoder_huffman.o .libs/encoder_idct.o
.libs/encoder_toplevel.o .libs/encoder_quant.o .libs/encapiwrapper.o .libs/blockmap.o
.libs/dct.o .libs/dct_decode.o .libs/frarray.o .libs/frinit.o .libs/mcomp.o .libs/misc_common.o
.libs/pb.o .libs/pp.o .libs/reconstruct.o .libs/scan.o .libs/dsp.o -R/opt/local/lib -logg -L/opt
/local/lib -lc
Text relocation remains referenced
against symbol offset in file
.rodata (section) 0x55 .libs/dct_decode_mmx.o
.rodata (section) 0x5f .libs/dct_decode_mmx.o
.rodata (section) 0x108 .libs/dct_decode_mmx.o
.rodata (section) 0x112 .libs/dct_decode_mmx.o
.rodata (section) 0x1df .libs/dct_decode_mmx.o
.rodata (section) 0x1e6 .libs/dct_decode_mmx.o
.rodata (section) 0x1f3 .libs/dct_decode_mmx.o
.rodata (section) 0x1fa .libs/dct_decode_mmx.o
ld: fatal: relocations remain against allocatable but non-writable sections
collect2: ld returned 1 exit status
```
If I add either of the following to ./configure then the error goes away:
```
--disable-encode
--disable-shared
```
From what I've been able to figure out there is a problem with the shared library portion for whatever reason.
The fix seems to be to pass -fPIC to gcc which you will notice is missing on the command line just before the error is thrown. I've not been able to figure out how to pass -fPIC to gcc to see if it alleviates the situation.
How can I do this?
thanks in advance,
alan