[FFmpeg-user] cannot build shared libraries on Solaris

2018-12-20 Thread Eric Thomas
Hello,



My system administrator downloaded the FFmpeg 4.1 source code this week,
and I have been trying to build a set of shared libraries in Solaris. I
have successfully

built the static libraries.



Here is some system info:



uname –a

 SunOS devm 5.10 Generic_150400-61 sun4u sparc SUNW,Sun-Fire-V490



make –v

 GNU Make 3.81



gcc –v

 Reading specs from /usr/sfw/lib/gcc/sparc-sun-solaris2.10/3.4.3/specs

 Configured with:
/sfw10/builds/build/sfw10-patch/usr/src/cmd/gcc/gcc-3.4.3/configure
–prefix=/usr/sfw –with-as=/usr/ccs/bin/as –without-gnu-as
–with-ld=/usr/ccs/bin/ld –without-gnu-ld –enable-language=c,c++
--enable-shared

 Thread model: posix

 gcc version 3.4.3 (csl-sol210-3_4-branch+sol_rpath)



sed –version

GNU sed 4.5





Configure cmd

 bash ./configure –prefix=/home/ffmpeg/FFmpeg-4.1 -–enable-shared



Here is the console output, after running ‘make’, then ‘make V=1
ffmpeg’, then ‘make V=1 ffmpeg’ again:



gcc –shared –Wl,–h, libavutil.so. –Wl,-M,libavutil.ver –Llibavcodec
–Llibavdevice –Llibavfilter –Llibavformat –Llibavresample –Llibavutil
–Llibpostproc –Llibswscale –Llibswresample
–Wl,-rpath-link=libpostproc:libswresample:libswscale:libavfilter:libavdevice:libavformat:libavcodec:libavutil:libavresample
–o libavutil/libavutil.so.
libavutil/../compat/atomics/pthread/stdatomic.o libavutil/adler32.o
libavutil/aes.o libavutil/aes_ctr.o libavutil/audio_fifo.o
libavutil/avstring.o libavutil/base64.o libavutil/blowfish.o
libavutil/bprint.o libavutil/buffer.o libavutil/camellia.o
libavutil/cast5.o libavutil/channel_layout.o libavutil/color_utils.o
libavutil/cpu.o libavutil/crc.o libavutil/des.o libavutil/dict.o
libavutil/display.o libavutil/downmix_info.o
libavutil/encryption_info.o libavutil/error.o libavutil/eval.o
libavutil/fifo.o libavutil/file.o libavutil/file_open.o
libavutil/fixed_dsp.o libavutil/float_dsp.o libavutil/frame.o
libavutil/hash.o libavutil/hmac.o libavutil/hwcontext.o
libavutil/imgutils.o libavutil/integer.o libavutil/intmath.o
libavutil/lfg.o libavutil/lls.o libavutil/log.o libavutil/log2_tab.o
libavutil/lzo.o libavutil/mastering_display_metadata.o
libavutil/mathematics.o libavutil/md5.o libavutil/mem.o
libavutil/murmur3.o libavutil/opt.o libavutil/parseutils.o
libavutil/pixdesc.o libavutil/pixelutils.o libavutil/random_seed.o
libavutil/rational.o libavutil/rc4.o libavutil/reverse.o
libavutil/ripemd.o libavutil/samplefmt.o libavutil/sha.o
libavutil/sha512.o libavutil/slicethread.o libavutil/spherical.o
libavutil/stereo3d.o libavutil/tea.o libavutil/threadmessage.o
libavutil/time.o libavutil/timecode.o libavutil/tree.o
libavutil/twofish.o libavutil/utils.o libavutil/xga_font_data.o
libavutil/xtea.o –lrt –pthread –lrt –lm

gcc: unrecognized option `-pthread’

Text relocation remains  referenced

against symboloffset in file

.data (section)   0x0
libavutil/../compat/atomics/pthread/stdatomic.o

.data (section)   0xc
libavutil/../compat/atomics/pthread/stdatomic.o

.data (section)   0x14
libavutil/../compat/atomics/pthread/stdatomic.o

.data (section)   0x20
libavutil/../compat/atomics/pthread/stdatomic.o

pthread_mutex_lock0x4
libavutil/../compat/atomics/pthread/stdatomic.o

pthread_mutex_lock0x8
libavutil/../compat/atomics/pthread/stdatomic.o

pthread_mutex_unlock  0x18
libavutil/../compat/atomics/pthread/stdatomic.o

pthread_mutex_unlock  0x1c
libavutil/../compat/atomics/pthread/stdatomic.o

ld: fatal: relocations remain against allocatable but non-writable sections

collect2: ld returned 1 exit status

make: *** [libavutil/libavutil.so.] Error 1





Can someone identify the problem?



Thanks!

Eric
___
ffmpeg-user mailing list
ffmpeg-user@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".

Re: [FFmpeg-user] cannot build shared libraries on Solaris

2018-12-21 Thread Carl Eugen Hoyos
2018-12-20 15:24 GMT+01:00, Eric Thomas :

> My system administrator downloaded the FFmpeg 4.1
> source code this week,

Sorry for being so nosy:
Does the following command not work for you?
$ curl -O http://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2
$ tar xf ffmpeg-snapshot.tar.bz2

(Above is a quick alternative to the more common
"git clone https://git.ffmpeg.org/ffmpeg.git";)

I tested on sunos 5.11 with (default?) gcc 5.5 both
with your configure line and fate (our testing suite)
passes without issues.

--enable-shared --enable-gpl has an unrelated issue
here on Solaris, I'll send a patch to fix / workaround
this problem. (Sun ld doesn't understand -rpath-link
and searches "libpostproc.so" in "-link=libpostproc"
instead of "libpostproc".)

[...]

> Text relocation remains  referenced
>
> against symboloffset in file
>
> .data (section)   0x0
> libavutil/../compat/atomics/pthread/stdatomic.o

Did you try the following?
$ rm compat/atomics/pthread/stdatomic.o && gmake ffmpeg

Carl Eugen
___
ffmpeg-user mailing list
ffmpeg-user@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".

Re: [FFmpeg-user] cannot build shared libraries on Solaris

2018-12-24 Thread Eric Thomas
Carl,

Removing the stdatomic.o file, and building with 'gmake' did the trick for
me. I
have a set of shared libraries. Thanks for that info!

Next question: On my Centos VM, my shared library files have the library
version as the filename suffix.
For example, "*libavcodec.so.58*".
On my Solaris machine, the library filenames do not have the version
suffix. For example, "*libavcodec.so.*"
Should the Solaris libraries have the version suffix? What edits can I make
to get the version suffix?

Thanks!
Eric

On Fri, Dec 21, 2018 at 6:09 PM Carl Eugen Hoyos  wrote:

> 2018-12-20 15:24 GMT+01:00, Eric Thomas :
>
> > My system administrator downloaded the FFmpeg 4.1
> > source code this week,
>
> Sorry for being so nosy:
> Does the following command not work for you?
> $ curl -O http://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2
> $ tar xf ffmpeg-snapshot.tar.bz2
>
> (Above is a quick alternative to the more common
> "git clone https://git.ffmpeg.org/ffmpeg.git";)
>
> I tested on sunos 5.11 with (default?) gcc 5.5 both
> with your configure line and fate (our testing suite)
> passes without issues.
>
> --enable-shared --enable-gpl has an unrelated issue
> here on Solaris, I'll send a patch to fix / workaround
> this problem. (Sun ld doesn't understand -rpath-link
> and searches "libpostproc.so" in "-link=libpostproc"
> instead of "libpostproc".)
>
> [...]
>
> > Text relocation remains  referenced
> >
> > against symboloffset in file
> >
> > .data (section)   0x0
> > libavutil/../compat/atomics/pthread/stdatomic.o
>
> Did you try the following?
> $ rm compat/atomics/pthread/stdatomic.o && gmake ffmpeg
>
> Carl Eugen
> ___
> ffmpeg-user mailing list
> ffmpeg-user@ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-user
>
> To unsubscribe, visit link above, or email
> ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".
___
ffmpeg-user mailing list
ffmpeg-user@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".

Re: [FFmpeg-user] cannot build shared libraries on Solaris

2018-12-27 Thread Carl Eugen Hoyos
2018-12-24 14:20 GMT+01:00, Eric Thomas :

> Next question: On my Centos VM, my shared library files have the library
> version as the filename suffix.
> For example, "*libavcodec.so.58*".
> On my Solaris machine, the library filenames do not have the version
> suffix. For example, "*libavcodec.so.*"

I get version suffixes here:
$ ls -l libavcodec/libavcodec.*
lrwxrwxrwx   1 cehoyos  staff 16 Dec 27 21:58
libavcodec/libavcodec.so -> libavcodec.so.58
-rwxr-xr-x   1 cehoyos  staff66379668 Dec 27 21:58
libavcodec/libavcodec.so.58
-rw-r--r--   1 cehoyos  staff  25622 Dec 27 21:58 libavcodec/libavcodec.ver
-rw-r--r--   1 cehoyos  staff 85 Dec 27 21:48
libavcodec/libavcodec.version

Carl Eugen
___
ffmpeg-user mailing list
ffmpeg-user@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".

Re: [FFmpeg-user] cannot build shared libraries on Solaris

2018-12-27 Thread Carl Eugen Hoyos
2018-12-24 14:20 GMT+01:00, Eric Thomas :

> Removing the stdatomic.o file, and building with 'gmake' did
> the trick for me.

This may be a bug (did "make distclean" not remove the file?)
but since I cannot reproduce, I'll not try to fix it.

Carl Eugen
___
ffmpeg-user mailing list
ffmpeg-user@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".

Re: [FFmpeg-user] cannot build shared libraries on Solaris

2018-12-27 Thread Carl Zwanzig

On 12/27/2018 1:00 PM, Carl Eugen Hoyos wrote:

2018-12-24 14:20 GMT+01:00, Eric Thomas:



On my Solaris machine, the library filenames do not have the version
suffix. For example, "*libavcodec.so.*"



I get version suffixes here:
$ ls -l libavcodec/libavcodec.*
lrwxrwxrwx   1 cehoyos  staff 16 Dec 27 21:58
libavcodec/libavcodec.so -> libavcodec.so.58
-rwxr-xr-x   1 cehoyos  staff66379668 Dec 27 21:58
libavcodec/libavcodec.so.58


I seem to recall that solaris doesn't usually set up the "symlink to the 
numbered lib" technique that BSD and linux use but I don't have a system to 
check that.


Does solaris/illumos/etc use that technique?

z!
___
ffmpeg-user mailing list
ffmpeg-user@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".

Re: [FFmpeg-user] cannot build shared libraries on Solaris

2018-12-28 Thread Eric Thomas
Here is an example of what I have. The other libraries are similar (no
version numbers)..
find . -name *.so* | xargs ls -l
./libavcodec/libavcodec.so -> libavcodec.so.
47462412 ./libavcodec/libavcodec.so.





On Thu, Dec 27, 2018 at 4:01 PM Carl Eugen Hoyos  wrote:

> 2018-12-24 14:20 GMT+01:00, Eric Thomas :
>
> > Next question: On my Centos VM, my shared library files have the library
> > version as the filename suffix.
> > For example, "*libavcodec.so.58*".
> > On my Solaris machine, the library filenames do not have the version
> > suffix. For example, "*libavcodec.so.*"
>
> I get version suffixes here:
> $ ls -l libavcodec/libavcodec.*
> lrwxrwxrwx   1 cehoyos  staff 16 Dec 27 21:58
> libavcodec/libavcodec.so -> libavcodec.so.58
> -rwxr-xr-x   1 cehoyos  staff66379668 Dec 27 21:58
> libavcodec/libavcodec.so.58
> -rw-r--r--   1 cehoyos  staff  25622 Dec 27 21:58
> libavcodec/libavcodec.ver
> -rw-r--r--   1 cehoyos  staff 85 Dec 27 21:48
> libavcodec/libavcodec.version
>
> Carl Eugen
> ___
> ffmpeg-user mailing list
> ffmpeg-user@ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-user
>
> To unsubscribe, visit link above, or email
> ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".
___
ffmpeg-user mailing list
ffmpeg-user@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".

Re: [FFmpeg-user] cannot build shared libraries on Solaris

2018-12-28 Thread Eric Thomas
Carl,

"make distclean" does not remove the compat/atomics/pthread/stdatomic.o
file on my system.

Eric

On Thu, Dec 27, 2018 at 4:11 PM Carl Eugen Hoyos  wrote:

> 2018-12-24 14:20 GMT+01:00, Eric Thomas :
>
> > Removing the stdatomic.o file, and building with 'gmake' did
> > the trick for me.
>
> This may be a bug (did "make distclean" not remove the file?)
> but since I cannot reproduce, I'll not try to fix it.
>
> Carl Eugen
> ___
> ffmpeg-user mailing list
> ffmpeg-user@ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-user
>
> To unsubscribe, visit link above, or email
> ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".
___
ffmpeg-user mailing list
ffmpeg-user@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".

Re: [FFmpeg-user] cannot build shared libraries on Solaris

2018-12-28 Thread Reindl Harald


Am 28.12.18 um 12:25 schrieb Eric Thomas:
> "make distclean" does not remove the compat/atomics/pthread/stdatomic.o
> file on my system.

i recommend doing the same as package builds

* rm -rf buildroot
* mkdir buildroot
* configure && make

sample for a newer, static php binary on CentOS below which i need for
letsencrypt libraries using PHP 7.1 features

--

[builduser@backup-hosting:~]$ ls
insgesamt 20K
drwx-- 2 builduser builduser 4,0K 2018-04-10 16:58 BINARIES
drwx-- 2 builduser builduser 4,0K 2018-04-10 16:58 BUILD
drwx-- 2 builduser builduser 4,0K 2018-04-10 16:58 BUILDROOTS
drwx-- 2 builduser builduser 4,0K 2018-07-21 04:58 SOURCES
-rwx-- 1 builduser builduser 1,8K 2018-04-10 16:51 build-php-cli.sh

[builduser@backup-hosting:~]$ cat build-php-cli.sh
#!/usr/bin/bash
PHP_VERSION="7.2.12"
rm -rf /home/builduser/BUILDROOTS/php-$PHP_VERSION
tar xfJ /home/builduser/SOURCES/php-$PHP_VERSION.tar.xz -C
/home/builduser/BUILDROOTS/
cd /home/builduser/BUILDROOTS/php-$PHP_VERSION
export CFLAGS="-m64 -Os -mfpmath=sse -mavx -msse2avx -march=native
-mtune=native -ftree-vectorize -fomit-frame-pointer -fno-strict-aliasing
-fwrapv -g0"
export CC="gcc $CFLAGS"
export CXXFLAGS="$CFLAGS"
export CPPFLAGS="$CFLAGS"
export CXX="gcc $CFLAGS"
./configure --quiet \
 --host=x86_64-redhat-linux \
 --build=x86_64-redhat-linux \
 --target=x86_64-redhat-linux \
 --prefix=/home/builduser/BUILD \
 --program-prefix= \
 --disable-all \
 --enable-calendar \
 --enable-cli \
 --enable-ctype \
 --enable-dom \
 --enable-filter \
 --enable-hash \
 --enable-intl \
 --enable-json \
 --enable-libxml \
 --enable-mbregex \
 --enable-mbstring \
 --enable-posix \
 --enable-simplexml \
 --enable-soap \
 --enable-static \
 --enable-xml \
 --with-curl \
 --with-iconv \
 --with-layout=GNU \
 --with-openssl \
 --with-pcre-regex \
 --with-system-ciphers \
 --with-zlib \
 --without-apxs2 \
 --without-config-file-path \
 --without-config-file-scan-dir \
 --without-pcre-jit \
 --disable-cgi \
 --disable-dmalloc \
 --disable-dtrace \
 --disable-gcov \
 --disable-ipv6 \
 --disable-phpdbg \
 --disable-rpath \
 --disable-shared \
 --disable-short-tags
make --quiet -j4
make install
strip -s --strip-unneeded /home/builduser/BUILD/bin/php
mv --force /home/builduser/BUILD/bin/php /home/builduser/BINARIES/
rm -rf /home/builduser/BUILD/*
rm -rf /home/builduser/BUILDROOTS/php-$PHP_VERSION
chmod 755 /home/builduser/BINARIES/php
ls /home/builduser/BINARIES/php
echo ""
/home/builduser/BINARIES/php -v
echo ""
/home/builduser/BINARIES/php -m
___
ffmpeg-user mailing list
ffmpeg-user@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".

Re: [FFmpeg-user] cannot build shared libraries on Solaris

2018-12-28 Thread Carl Eugen Hoyos
2018-12-28 12:19 GMT+01:00, Eric Thomas :
> Here is an example of what I have. The other libraries are similar (no
> version numbers)..
> find . -name *.so* | xargs ls -l
> ./libavcodec/libavcodec.so -> libavcodec.so.
> 47462412 ./libavcodec/libavcodec.so.

I suspect this is related to your shell, try:
$ ffbuild/libversion.sh avutil libavutil/version.h
libavutil_VERSION=56.25.100
libavutil_VERSION_MAJOR=56
libavutil_VERSION_MINOR=25
This is my output, I expect your output will not show the numbers.

This is a bug that could be fixed but given that sunos is a very
unusual target and I cannot reproduce here, my guess is that
you can somehow convince your build environment to use
bash instead of the Solaris shell...

If you need more support, please find out what top-posting
means and avoid it here.

Carl Eugen
___
ffmpeg-user mailing list
ffmpeg-user@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".

Re: [FFmpeg-user] cannot build shared libraries on Solaris

2018-12-28 Thread Carl Eugen Hoyos
2018-12-28 12:19 GMT+01:00, Eric Thomas :
> Here is an example of what I have. The other libraries are similar (no
> version numbers)..
> find . -name *.so* | xargs ls -l
> ./libavcodec/libavcodec.so -> libavcodec.so.
> 47462412 ./libavcodec/libavcodec.so.

I suspect this is related to your shell, try:
$ ffbuild/libversion.sh avutil libavutil/version.h
libavutil_VERSION=56.25.100
libavutil_VERSION_MAJOR=56
libavutil_VERSION_MINOR=25
This is my output, I expect your output will not show the numbers.

This is a bug that could be fixed but given that sunos is a very
unusual target and I cannot reproduce here, my guess is that
you can somehow convince your build environment to use
bash instead of the Solaris shell...

If you need more support, please find out what top-posting
means and avoid it here.

Carl Eugen
___
ffmpeg-user mailing list
ffmpeg-user@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".

Re: [FFmpeg-user] cannot build shared libraries on Solaris

2018-12-28 Thread Carl Eugen Hoyos
2018-12-28 12:25 GMT+01:00, Eric Thomas :

> "make distclean" does not remove the compat/atomics/pthread/stdatomic.o
> file on my system.

Should be fixed, thank you for the reminder.

Carl Eugen
___
ffmpeg-user mailing list
ffmpeg-user@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".

Re: [FFmpeg-user] cannot build shared libraries on Solaris

2018-12-28 Thread Eric Thomas
 My results:

$ ffbuild/libversion.sh avutil libavutil/version.h
libavutil_VERSION=56.22.100
libavutil_VERSION_MAJOR=56
libavutil_VERSION_MINOR=22



On Fri, Dec 28, 2018 at 7:55 AM Carl Eugen Hoyos  wrote:

> 2018-12-28 12:19 GMT+01:00, Eric Thomas :
> > Here is an example of what I have. The other libraries are similar (no
> > version numbers)..
> > find . -name *.so* | xargs ls -l
> > ./libavcodec/libavcodec.so -> libavcodec.so.
> > 47462412 ./libavcodec/libavcodec.so.
>
> I suspect this is related to your shell, try:
> $ ffbuild/libversion.sh avutil libavutil/version.h
> libavutil_VERSION=56.25.100
> libavutil_VERSION_MAJOR=56
> libavutil_VERSION_MINOR=25
> This is my output, I expect your output will not show the numbers.
>
> This is a bug that could be fixed but given that sunos is a very
> unusual target and I cannot reproduce here, my guess is that
> you can somehow convince your build environment to use
> bash instead of the Solaris shell...
>
> If you need more support, please find out what top-posting
> means and avoid it here.
>
> Carl Eugen
> ___
> ffmpeg-user mailing list
> ffmpeg-user@ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-user
>
> To unsubscribe, visit link above, or email
> ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".
___
ffmpeg-user mailing list
ffmpeg-user@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".