Comments (6)
musl might not have its own preprocessor macro to detect it. How about if I add HAVE_STRTOD_L ||
to my existing tests defined(GLIBC) || defined(__DARWIN__)
. And, you can add to CFLAGS in your build environment -DHAVE_STRTOD_L=1
?
from mlt.
If you do not fix it by submitting a patch, then perhaps no one will.
On Sun, Aug 2, 2015, 10:18 AM Diogo Leal [email protected] wrote:
I'm trying to compile the MLT using musl, but occurs some errors during
compilation.My config.log is:
./configure --prefix=/usr --sysconfdir=/etc --sbindir=/usr/bin --bindir=/usr/bin --mandir=/usr/share/man --infodir=/usr/share/info --localstatedir=/var --host=x86_64-unknown-linux-gnu --build=x86_64-unknown-linux-gnu --host=x86_64-linux-musl --with-sysroot=/usr/x86_64-linux-musl --with-libtool-sysroot=/usr/x86_64-linux-musl --enable-mmx
'
Error message is:list='src/framework src/mlt++ src/melt src/modules src/swig profiles';
for subdir in $list; do
make -s -C $subdir depend || exit 1;
make -C $subdir all || exit 1;
done
make[1]: Entering directory '/builddir/mlt-0.9.8/src/framework'
x86_64-linux-musl-gcc -O2 -pipe -fstack-protector-strong
-D_FORTIFY_SOURCE=2 -mtune=generic -DARCH_X86_64 -Wall -DPIC -O2 -pipe
-fno-tree-dominator-opts -fno-tree-pre -ffast-math -DUSE_MMX -DUSE_SSE
-DUSE_SSE2 -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fPIC -pthread
-DARCH_X86_64 -Wall -DPIC -O2 -pipe -fno-tree-dominator-opts -fno-tree-pre
-ffast-math -DUSE_MMX -DUSE_SSE -DUSE_SSE2 -g -D_FILE_OFFSET_BITS=64
-D_LARGEFILE_SOURCE -fPIC -pthread -rdynamic
-DPREFIX_DATA=""/usr/share/mlt"" -DPREFIX_LIB=""/usr/lib/mlt"" -c -o
mlt_frame.o mlt_frame.c
x86_64-linux-musl-gcc -O2 -pipe -fstack-protector-strong
-D_FORTIFY_SOURCE=2 -mtune=generic -DARCH_X86_64 -Wall -DPIC -O2 -pipe
-fno-tree-dominator-opts -fno-tree-pre -ffast-math -DUSE_MMX -DUSE_SSE
-DUSE_SSE2 -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fPIC -pthread
-DARCH_X86_64 -Wall -DPIC -O2 -pipe -fno-tree-dominator-opts -fno-tree-pre
-ffast-math -DUSE_MMX -DUSE_SSE -DUSE_SSE2 -g -D_FILE_OFFSET_BITS=64
-D_LARGEFILE_SOURCE -fPIC -pthread -rdynamic
-DPREFIX_DATA=""/usr/share/mlt"" -DPREFIX_LIB=""/usr/lib/mlt"" -c -o
mlt_version.o mlt_version.c
x86_64-linux-musl-gcc -O2 -pipe -fstack-protector-strong
-D_FORTIFY_SOURCE=2 -mtune=generic -DARCH_X86_64 -Wall -DPIC -O2 -pipe
-fno-tree-dominator-opts -fno-tree-pre -ffast-math -DUSE_MMX -DUSE_SSE
-DUSE_SSE2 -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fPIC -pthread
-DARCH_X86_64 -Wall -DPIC -O2 -pipe -fno-tree-dominator-opts -fno-tree-pre
-ffast-math -DUSE_MMX -DUSE_SSE -DUSE_SSE2 -g -D_FILE_OFFSET_BITS=64
-D_LARGEFILE_SOURCE -fPIC -pthread -rdynamic
-DPREFIX_DATA=""/usr/share/mlt"" -DPREFIX_LIB=""/usr/lib/mlt"" -c -o
mlt_geometry.o mlt_geometry.c
x86_64-linux-musl-gcc -O2 -pipe -fstack-protector-strong
-D_FORTIFY_SOURCE=2 -mtune=generic -DARCH_X86_64 -Wall -DPIC -O2 -pipe
-fno-tree-dominator-opts -fno-tree-pre -ffast-math -DUSE_MMX -DUSE_SSE
-DUSE_SSE2 -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fPIC -pthread
-DARCH_X86_64 -Wall -DPIC -O2 -pipe -fno-tree-dominator-opts -fno-tree-pre
-ffast-math -DUSE_MMX -DUSE_SSE -DUSE_SSE2 -g -D_FILE_OFFSET_BITS=64
-D_LARGEFILE_SOURCE -fPIC -pthread -rdynamic
-DPREFIX_DATA=""/usr/share/mlt"" -DPREFIX_LIB=""/usr/lib/mlt"" -c -o
mlt_deque.o mlt_deque.c
x86_64-linux-musl-gcc -O2 -pipe -fstack-protector-strong
-D_FORTIFY_SOURCE=2 -mtune=generic -DARCH_X86_64 -Wall -DPIC -O2 -pipe
-fno-tree-dominator-opts -fno-tree-pre -ffast-math -DUSE_MMX -DUSE_SSE
-DUSE_SSE2 -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fPIC -pthread
-DARCH_X86_64 -Wall -DPIC -O2 -pipe -fno-tree-dominator-opts -fno-tree-pre
-ffast-math -DUSE_MMX -DUSE_SSE -DUSE_SSE2 -g -D_FILE_OFFSET_BITS=64
-D_LARGEFILE_SOURCE -fPIC -pthread -rdynamic
-DPREFIX_DATA=""/usr/share/mlt"" -DPREFIX_LIB=""/usr/lib/mlt"" -c -o
mlt_property.o mlt_property.c
In file included from /usr/x86_64-linux-musl/usr/include/string.h:23:0,
from mlt_property.c:33:
/usr/x86_64-linux-musl/usr/include/bits/alltypes.h:368:34: error:
conflicting types for ‘locale_t’
typedef struct __locale_struct * locale_t;
^
In file included from mlt_property.c:28:0:
mlt_property.h:36:15: note: previous declaration of ‘locale_t’ was here
typedef char* locale_t;
^
mlt_property.c: In function ‘time_clock_to_frames’:
mlt_property.c:292:26: warning: passing argument 2 of ‘setlocale’ from
incompatible pointer type
setlocale( LC_NUMERIC, locale );
^
In file included from mlt_property.c:34:0:
/usr/x86_64-linux-musl/usr/include/locale.h:53:7: note: expected ‘const
char’ but argument is of type ‘locale_t’ char *setlocale (int, const char *);
^ mlt_property.c: At top level: mlt_property.c:446:5: error: conflicting
types for ‘mlt_property_get_int’ int mlt_property_get_int( mlt_property
self, double fps, locale_t locale ) ^ In file included from
mlt_property.c:28:0: mlt_property.h:46:12: note: previous declaration of
‘mlt_property_get_int’ was here extern int mlt_property_get_int(
mlt_property self, double fps, locale_t ); ^ mlt_property.c: In function
‘mlt_property_atof’: mlt_property.c:506:27: warning: passing argument 2 of
‘setlocale’ from incompatible pointer type setlocale( LC_NUMERIC, locale );
^ In file included from mlt_property.c:34:0:
/usr/x86_64-linux-musl/usr/include/locale.h:53:7: note: expected ‘const
char *’ but argument is of type ‘locale_t’ char *setlocale (int, const char
*); ^ mlt_property.c: At top level: mlt_property.c:536:8: error:
conflicting types for ‘mlt_property_get_double’ double
mlt_property_get_double( mlt_property self, double fps, locale_t locale ) ^
In file included from mlt_property.c:28:0: mlt_property.h:47:15: note:
previous declaration of ‘mlt_property_get_double’ was here extern double
mlt_property_get_double( mlt_property self, double fps, locale_t ); ^
mlt_property.c:563:14: error: conflicting types for
‘mlt_property_get_position’ mlt_position mlt_property_get_position(
mlt_property self, double fps, locale_t locale ) ^ In file included from
mlt_property.c:28:0: mlt_property.h:48:21: note: previous declaration of
‘mlt_property_get_position’ was here extern mlt_position
mlt_property_get_position( mlt_property self, double fps, locale_t ); ^
mlt_property.c:687:7: error: conflicting types for
‘mlt_property_get_string_l’ char *mlt_property_get_string_l( mlt_property
self, locale_t locale ) ^ In file included from mlt_property.c:28:0:
mlt_property.h:51:14: note: previous declaration of
‘mlt_property_get_string_l’ was here extern char
*mlt_property_get_string_l( mlt_property self, locale_t ); ^
mlt_property.c: In function ‘mlt_property_get_string_l’:
mlt_property.c:703:28: warning: initialization from incompatible pointer
type const char *localename = locale; ^ mlt_property.c: At top level:
mlt_property.c:913:7: error: conflicting types for ‘mlt_property_get_time’
char *mlt_property_get_time( mlt_property self, mlt_time_format format,
double fps, locale_t locale ) ^ In file included from mlt_property.c:28:0:
mlt_property.h:55:14: note: previous declaration of ‘mlt_property_get_time’
was here extern char *mlt_property_get_time( mlt_property self,
mlt_time_format, double fps, locale_t ); ^ mlt_property.c: In function
‘mlt_property_get_time’: mlt_property.c:937:28: warning: initialization
from incompatible pointer type const char *localename = locale; ^
mlt_property.c: In function ‘is_property_numeric’: mlt_property.c:1040:27:
warning: passing argument 2 of ‘setlocale’ from incompatible pointer type
setlocale( LC_NUMERIC, locale ); ^ In file included from
mlt_property.c:34:0: /usr/x86_64-linux-musl/usr/include/locale.h:53:7:
note: expected ‘const char *’ but argument is of type ‘locale_t’ char
*setlocale (int, const char *); ^ mlt_property.c:1023:10: warning: variable
‘temp’ set but not used [-Wunused-but-set-variable] double temp; ^
mlt_property.c: At top level: mlt_property.c:1101:5: error: conflicting
types for ‘mlt_property_interpolate’ int mlt_property_interpolate(
mlt_property self, mlt_property p[], ^ In file included from
mlt_property.c:28:0: mlt_property.h:57:12: note: previous declaration of
‘mlt_property_interpolate’ was here extern int mlt_property_interpolate(
mlt_property self, mlt_property points[], double progress, double fps,
locale_t locale, mlt_keyframe_type interp ); ^ mlt_property.c: In function
‘mlt_property_interpolate’: mlt_property.c:1115:52: warning: passing
argument 2 of ‘mlt_property_get_rect’ from incompatible pointer type
points[0] = p[1]? mlt_property_get_rect( p[1], locale ) : zero; ^ In file
included from mlt_property.c:28:0: mlt_property.h:67:17: note: expected
‘locale_t’ but argument is of type ‘locale_t’ extern mlt_rect
mlt_property_get_rect( mlt_property self, locale_t locale ); ^
mlt_property.c:1118:47: warning: passing argument 2 of
‘mlt_property_get_rect’ from incompatible pointer type points[1] =
mlt_property_get_rect( p[2], locale ); ^ In file included from
mlt_property.c:28:0: mlt_property.h:67:17: note: expected ‘locale_t’ but
argument is of type ‘locale_t’ extern mlt_rect mlt_property_get_rect(
mlt_property self, locale_t locale ); ^ mlt_property.c:1134:52: warning:
passing argument 2 of ‘mlt_property_get_rect’ from incompatible pointer
type points[1] = p[1]? mlt_property_get_rect( p[1], locale ) : zero; ^ In
file included from mlt_property.c:28:0: mlt_property.h:67:17: note:
expected ‘locale_t’ but argument is of type ‘locale_t’ extern mlt_rect
mlt_property_get_rect( mlt_property self, locale_t locale ); ^
mlt_property.c:1137:53: warning: passing argument 2 of
‘mlt_property_get_rect’ from incompatible pointer type points[0] = p[0]?
mlt_property_get_rect( p[0], locale ) : zero; ^ In file included from
mlt_property.c:28:0: mlt_property.h:67:17: note: expected ‘locale_t’ but
argument is of type ‘locale_t’ extern mlt_rect mlt_property_get_rect(
mlt_property self, locale_t locale ); ^ mlt_property.c:1138:53: warning:
passing argument 2 of ‘mlt_property_get_rect’ from incompatible pointer
type points[2] = p[2]? mlt_property_get_rect( p[2], locale ) : zero; ^ In
file included from mlt_property.c:28:0: mlt_property.h:67:17: note:
expected ‘locale_t’ but argument is of type ‘locale_t’ extern mlt_rect
mlt_property_get_rect( mlt_property self, locale_t locale ); ^
mlt_property.c:1139:53: warning: passing argument 2 of
‘mlt_property_get_rect’ from incompatible pointer type points[3] = p[3]?
mlt_property_get_rect( p[3], locale ) : zero; ^ In file included from
mlt_property.c:28:0: mlt_property.h:67:17: note: expected ‘locale_t’ but
argument is of type ‘locale_t’ extern mlt_rect mlt_property_get_rect(
mlt_property self, locale_t locale ); ^ mlt_property.c: In function
‘refresh_animation’: mlt_property.c:1199:74: warning: passing argument 5 of
‘mlt_animation_parse’ from incompatible pointer type mlt_animation_parse(
self->animation, self->prop_string, length, fps, locale ); ^ In file
included from mlt_property.c:29:0: mlt_animation.h:41:12: note: expected
‘locale_t’ but argument is of type ‘locale_t’ extern int
mlt_animation_parse(mlt_animation self, const char *data, int length,
double fps, locale_t locale ); ^ mlt_property.c: At top level:
mlt_property.c:1227:8: error: conflicting types for
‘mlt_property_anim_get_double’ double mlt_property_anim_get_double(
mlt_property self, double fps, locale_t locale, int position, int length )
^ In file included from mlt_property.c:28:0: mlt_property.h:58:15: note:
previous declaration of ‘mlt_property_anim_get_double’ was here extern
double mlt_property_anim_get_double( mlt_property self, double fps,
locale_t locale, int position, int length ); ^ mlt_property.c:1262:5:
error: conflicting types for ‘mlt_property_anim_get_int’ int
mlt_property_anim_get_int( mlt_property self, double fps, locale_t locale,
int position, int length ) ^ In file included from mlt_property.c:28:0:
mlt_property.h:59:12: note: previous declaration of
‘mlt_property_anim_get_int’ was here extern int mlt_property_anim_get_int(
mlt_property self, double fps, locale_t locale, int position, int length );
^ mlt_property.c:1297:7: error: conflicting types for
‘mlt_property_anim_get_string’ char mlt_property_anim_get_string(
mlt_property self, double fps, locale_t locale, int position, int length )
^
In file included from mlt_property.c:28:0:
mlt_property.h:60:14: note: previous declaration of
‘mlt_property_anim_get_string’ was here
extern char* mlt_property_anim_get_string( mlt_property self, double fps,
locale_t locale, int position, int length );
^
mlt_property.c:1345:5: error: conflicting types for
‘mlt_property_anim_set_double’
int mlt_property_anim_set_double( mlt_property self, double value, double
fps, locale_t locale,
^
In file included from mlt_property.c:28:0:
mlt_property.h:61:12: note: previous declaration of
‘mlt_property_anim_set_double’ was here
extern int mlt_property_anim_set_double( mlt_property self, double value,
double fps, locale_t locale, int position, int length, mlt_keyframe_type
keyframe_type );
^
mlt_property.c:1380:5: error: conflicting types for
‘mlt_property_anim_set_int’
int mlt_property_anim_set_int( mlt_property self, int value, double fps,
locale_t locale,
^
In file included from mlt_property.c:28:0:
mlt_property.h:62:12: note: previous declaration of
‘mlt_property_anim_set_int’ was here
extern int mlt_property_anim_set_int( mlt_property self, int value, double
fps, locale_t locale, int position, int length, mlt_keyframe_type
keyframe_type );
^
mlt_property.c:1417:5: error: conflicting types for
‘mlt_property_anim_set_string’
int mlt_property_anim_set_string( mlt_property self, const charvalue, double fps, locale_t locale, int position, int length ) ^ In file
included from mlt_property.c:28:0: mlt_property.h:63:12: note: previous
declaration of ‘mlt_property_anim_set_string’ was here extern int
mlt_property_anim_set_string( mlt_property self, const char *value, double
fps, locale_t locale, int position, int length ); ^ mlt_property.c:1511:10:
error: conflicting types for ‘mlt_property_get_rect’ mlt_rect
mlt_property_get_rect( mlt_property self, locale_t locale ) ^ In file
included from mlt_property.c:28:0: mlt_property.h:67:17: note: previous
declaration of ‘mlt_property_get_rect’ was here extern mlt_rect
mlt_property_get_rect( mlt_property self, locale_t locale ); ^
mlt_property.c: In function ‘mlt_property_get_rect’:
mlt_property.c:1540:27: warning: passing argument 2 of ‘setlocale’ from
incompatible pointer type setlocale( LC_NUMERIC, locale ); ^ In file
included from mlt_property.c:34:0:
/usr/x86_64-linux-musl/usr/include/locale.h:53:7: note: expected ‘const
char *’ but argument is of type ‘locale_t’ char *setlocale (int, const char
*); ^ mlt_property.c: At top level: mlt_property.c:1608:5: error:
conflicting types for ‘mlt_property_anim_set_rect’ int
mlt_property_anim_set_rect( mlt_property self, mlt_rect value, double fps,
locale_t locale, ^ In file included from mlt_property.c:28:0:
mlt_property.h:68:12: note: previous declaration of
‘mlt_property_anim_set_rect’ was here extern int
mlt_property_anim_set_rect( mlt_property self, mlt_rect value, double fps,
locale_t locale, int position, int length, mlt_keyframe_type keyframe_type
); ^ mlt_property.c:1641:10: error: conflicting types for
‘mlt_property_anim_get_rect’ mlt_rect mlt_property_anim_get_rect(
mlt_property self, double fps, locale_t locale, int position, int length )
^ In file included from mlt_property.c:28:0: mlt_property.h:69:17: note:
previous declaration of ‘mlt_property_anim_get_rect’ was here extern
mlt_rect mlt_property_anim_get_rect( mlt_property self, double fps,
locale_t locale, int position, int length ); ^ : recipe for target
'mlt_property.o' failed make[1]: ** [mlt_property.o] Error 1
make[1]: Leaving directory '/builddir/mlt-0.9.8/src/framework'
Makefile:9: recipe for target 'all' failed
make: *** [all] Error 1My intention to compile the MLT using musl is to package it for the distro Void Linux.
—
Reply to this email directly or view it on GitHub
#82.
from mlt.
This patch has create for a another member.
https://github.com/voidlinux/void-packages/blob/master/srcpkgs/mlt/patches/musl-locale.patch
My know in C/C++ is bad, but your message me motivated to learn.
Thank you!
from mlt.
Hm, OK, but that patch cannot be merged because it just clobbers the code for its own need instead of trying to contribute upstream.
from mlt.
Hi, I continued to maintain the mlt package on Voidlinux.
I think having a symbol like HAVE_STRTOD_L
is the best solution here.
from mlt.
#298 implements the HAVE_STRTOD_L
check and additionaly one for HAVE_LOCALE_H
.
With this, mlt can be build for musl libc.
from mlt.
Related Issues (20)
- MLT geometric shape support HOT 1
- How to solve the aliasing problem in video mixing process? HOT 1
- Watermark Chinese garbled code HOT 2
- Video cannot be played on IOS phones HOT 1
- Can't build on MSVC 2019 HOT 1
- Multi track video synthesis is very resource and time consuming
- Shotcut crashes after timeline undo operations with MLT 7.20.0 HOT 2
- Memory leak when Kdenlive project contains clip with changed speed and FX HOT 5
- mlt 7.22.0 does not compile with libxml2 2.12.0
- Exporting AVI format videos is very blurry and clearly mosaic like HOT 2
- 7.22.0 CMakeLists.txt HOT 1
- mlt.so does not specify dependency on libruby.so HOT 1
- [SVT-AV1] MLT does not seem to support any configuration done via Kdenlive interface except "preset". HOT 1
- Discovered a bug regarding image size scaling and rotation
- sdl consumer may require SDL12COMPAT_NO_QUIT_VIDEO
- Protobuf duplicate library causes crash HOT 3
- Melt SIGSEGV when using the -chain flag HOT 5
- "Why does the outline range of fonts in Shotcut span from 0 to 200, while in MLT, the range is only from 0 to 3? Is there any solution?" HOT 6
- How to change the spacing of wrapped text? HOT 3
- how to use gpu decode video? HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mlt.