Coder Social home page Coder Social logo

Compiling using musl libc about mlt HOT 6 CLOSED

mltframework avatar mltframework commented on May 14, 2024
Compiling using musl libc

from mlt.

Comments (6)

ddennedy avatar ddennedy commented on May 14, 2024 1

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.

ddennedy avatar ddennedy commented on May 14, 2024

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 char

value, 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 1

My 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.

diogoleal avatar diogoleal commented on May 14, 2024

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.

ddennedy avatar ddennedy commented on May 14, 2024

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.

jnbr avatar jnbr commented on May 14, 2024

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.

jnbr avatar jnbr commented on May 14, 2024

#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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.