By default, Bugzilla does not search the list of RESOLVED bugs.You can force it to do so by putting the upper-case word ALL in front of your search query, e.g.: ALL tdelibs
We recommend searching for bugs this way, as you may discover that your bug has already been resolved and fixed in a later release.
| Summary: |
Build issue: libraries mlt - x86_64 assembler error, incompatible pointer type, qimage/qtransform.h error |
| Product: |
TDE
|
Reporter: |
David C. Rankin <trin> |
| Component: |
other (any) | Assignee: |
Michele Calgaro <michele.calgaro> |
| Status: |
RESOLVED
WONTFIX
|
|
|
| Severity: |
normal
|
CC: |
bugwatch, darrella, kb9vqf, michele.calgaro
|
| Priority: |
P5
|
|
|
| Version: |
R14.0.x [Trinity] | |
|
| Hardware: |
All | |
|
| OS: |
Linux | |
|
|
Compiler Version:
|
|
TDE Version String:
|
|
|
Application Version:
|
|
Application Name:
|
|
| Bug Depends on: |
|
|
|
| Bug Blocks: |
2885
|
|
|
libraries/mlt has several issues that must be resolved. (1) it will not build on x86_64 due to assembler errors even with --cpu='native' or set to x86-64, k8, whatever. The assemly errors are: cc -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 -I/usr/include/tqt -I/usr/include/tqt/Qt -Wall -fPIC -DPIC -march=native -mcpu=native -O4 -pipe -fomit-frame-pointer -ffast-math -DUSE_MMX -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -pthread -Wall -fPIC -DPIC -march=native -mcpu=native -O4 -pipe -fomit-frame-pointer -ffast-math -DUSE_MMX -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -pthread -Wall -fPIC -DPIC -march=native -mcpu=native -O4 -pipe -fomit-frame-pointer -ffast-math -DUSE_MMX -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -pthread `pkg-config gtk+-2.0 --cflags` `pkg-config gdk-pixbuf-2.0 --cflags` `pkg-config pangoft2 --cflags` -I../.. -c -o producer_pango.o producer_pango.c cc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead cc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead cc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead cc -o have_mmx.o -c have_mmx.S have_mmx.S: Assembler messages: have_mmx.S:20: Error: operand type mismatch for `push' have_mmx.S:24: Error: invalid instruction suffix for `pushf' have_mmx.S:25: Error: invalid instruction suffix for `pop' have_mmx.S:28: Error: invalid instruction suffix for `push' have_mmx.S:29: Error: invalid instruction suffix for `popf' have_mmx.S:30: Error: invalid instruction suffix for `pushf' have_mmx.S:31: Error: invalid instruction suffix for `pop' have_mmx.S:51: Error: invalid instruction suffix for `pop' make[2]: *** [have_mmx.o] Error 1 make[2]: Leaving directory `/build/src/mlt/src/modules/gtk2' make[1]: *** [all] Error 1 make[1]: Leaving directory `/build/src/mlt/src/modules' make: *** [all] Error 1 From the list /dev/ammo42 had the following thoughts: Actually a --disable--mmx option is documented on configure. And for the rewrite, replacing e?x by r?x in assembler files won't be enough, some other code also has to be changed to accommodate the different calling conventions (function arguments on linux-x86 are on the stack, but the first ones on linux-amd64 are in the 64-bit registers). Perhaps using inline assembly would allow having only one version of the assembly code. Nix added: More generally, if you're rewriting it for x86-64 anyway, keeping it MMX seems pretty much pointless. Just go all the way to SSE, or better that SSE2: you'll cut off almost no hardware and be much more useful in future. (AVX is probably a step too far: a lot of toolchains don't support it yet, and I don't know anyone with AVX hardware.) (2) compatibility with sox is broken: filter_sox.c: In function 'create_effect': filter_sox.c:94:2: warning: passing argument 1 of 'sox_create_effect' from incompatible pointer type [enabled by default] /usr/include/sox.h:526:16: note: expected 'const struct sox_effect_handler_t *' but argument is of type 'struct sox_effect_t *' filter_sox.c:94:2: error: too many arguments to function 'sox_create_effect' /usr/include/sox.h:526:16: note: declared here filter_sox.c:111:7: error: 'sox_effect_t' has no member named 'ininfo' filter_sox.c:112:7: error: 'sox_effect_t' has no member named 'outinfo' filter_sox.c:113:7: error: 'sox_effect_t' has no member named 'ininfo' filter_sox.c:114:7: error: 'sox_effect_t' has no member named 'outinfo' filter_sox.c: In function 'filter_get_audio': filter_sox.c:217:24: error: 'sox_effect_t' has no member named 'ininfo' filter_sox.c:218:9: error: 'sox_effect_t' has no member named 'outinfo' filter_sox.c:256:4: error: unknown type name 'sox_size_t' filter_sox.c:257:4: error: unknown type name 'sox_size_t' filter_sox.c:282:33: error: 'SOX_SSIZE_MIN' undeclared (first use in this function) filter_sox.c:282:33: note: each undeclared identifier is reported only once for each function it appears in filter_sox.c:345:6: warning: pointer targets in passing argument 4 of 'e->handler.flow' differ in signedness [-Wpointer-sign] filter_sox.c:345:6: note: expected 'size_t *' but argument is of type 'int *' filter_sox.c:345:6: warning: pointer targets in passing argument 5 of 'e->handler.flow' differ in signedness [-Wpointer-sign] filter_sox.c:345:6: note: expected 'size_t *' but argument is of type 'int *' filter_sox.c:376:10: error: 'sox_macro_temp_sample' undeclared (first use in this function) filter_sox.c:376:10: warning: left-hand operand of comma expression has no effect [-Wunused-value] make[2]: *** [filter_sox.o] Error 1 (3) qimage is broken (QtGui is Qt4): g++ -march=i686 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 -I/usr/include/tqt -I/usr/include/tqt/Qt -march=i686 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 -I/usr/include/tqt -I/usr/include/tqt/Qt -Wall -fPIC -DPIC -O4 -pipe -fomit-frame-pointer -ffast-math -DUSE_MMX -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -pthread -Wall -fPIC -DPIC -O4 -pipe -fomit-frame-pointer -ffast-math -DUSE_MMX -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -pthread -Wall -fPIC -DPIC -O4 -pipe -fomit-frame-pointer -ffast-math -DUSE_MMX -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -pthread -I../../ -I/opt/tqt3/include -I/opt/trinity/include -Wno-deprecated -c -o qimage_wrapper.o qimage_wrapper.cpp In file included from qimage_wrapper.cpp:25:0: /usr/include/tqt/Qt/qimage.h:45:30: fatal error: QtGui/qtransform.h: No such file or directory compilation terminated. make[2]: *** [qimage_wrapper.o] Error 1 However, it does build on i686 with: --prefix=${TDEDIR} \ --enable-gpl \ --disable-sox \ --disable-qimage