Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Compiling using musl libc #82

Closed
diogoleal opened this issue Aug 2, 2015 · 6 comments
Closed

Compiling using musl libc #82

diogoleal opened this issue Aug 2, 2015 · 6 comments
Labels
Milestone

Comments

@diogoleal
Copy link

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 );
                 ^
<builtin>: 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.

@ddennedy
Copy link
Member

ddennedy commented Aug 2, 2015

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 notifications@github.com 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.

@diogoleal
Copy link
Author

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!

@ddennedy
Copy link
Member

Hm, OK, but that patch cannot be merged because it just clobbers the code for its own need instead of trying to contribute upstream.

@ddennedy
Copy link
Member

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?

@ddennedy ddennedy reopened this Sep 28, 2015
@ddennedy ddennedy removed the expired label Sep 28, 2015
@jnbr
Copy link
Contributor

jnbr commented Jan 25, 2018

Hi, I continued to maintain the mlt package on Voidlinux.
I think having a symbol like HAVE_STRTOD_L is the best solution here.

@jnbr
Copy link
Contributor

jnbr commented Jan 30, 2018

#298 implements the HAVE_STRTOD_L check and additionaly one for HAVE_LOCALE_H.
With this, mlt can be build for musl libc.

@ddennedy ddennedy added this to the v6.8.0 milestone Feb 1, 2018
@ddennedy ddennedy closed this as completed Feb 1, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants