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.
Bug 951 - Build issue: libraries mlt - x86_64 assembler error, incompatible pointer type, qimage/qtransform.h error
Summary: Build issue: libraries mlt - x86_64 assembler error, incompatible pointer ty...
Status: RESOLVED WONTFIX
Alias: None
Product: TDE
Classification: Unclassified
Component: other (any) (show other bugs)
Version: R14.0.x [Trinity]
Hardware: All Linux
: P5 normal
Assignee: Michele Calgaro
URL:
Depends on:
Blocks: R14.0.6
  Show dependency treegraph
 
Reported: 2012-03-30 11:00 CDT by David C. Rankin
Modified: 2018-08-20 08:59 CDT (History)
4 users (show)

See Also:
Compiler Version:
TDE Version String:
Application Version:
Application Name:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description David C. Rankin 2012-03-30 11:00:36 CDT
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
Comment 1 Timothy Pearson 2013-04-08 15:19:29 CDT
The version of mlt in GIT is an old version of MLT from here:
http://www.mltframework.org/

It was only included for the KDE3 version of kdenlive, which never made its way into GIT and has been largely superseded by OpenShot.  Therefore, I propose removing mlt and mlt++ from the TDE archive entirely.
Comment 2 Darrell 2013-08-08 20:13:49 CDT
What is the status of this report? I still see mlt/mlt++ in the git source tree. :-)
Comment 3 Darrell 2013-08-14 19:06:48 CDT
Why is this report tagged Critical?
Comment 4 Darrell 2013-08-17 14:39:20 CDT
Bumping to Normal. Final resolution should be to remove the mlt/mlt++ modules from the source tree.
Comment 5 Michele Calgaro 2018-07-28 10:08:55 CDT
mlt libraries are not required for TDE. We should drop them from the repo.
Comment 6 Michele Calgaro 2018-08-20 08:34:05 CDT
mlt and mlt++ removed from main repo in commits 77e233a1 (R14.1) and 2e02a442 (R14.0).
mlt amd mlt++ removed from tde-packaging in commit 1ea97c304 (R14.1) and 8cc0c66cb (R1.0).