Skip to content
New issue

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

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

Already on GitHub? # to your account

Ubuntu20.04 compilation error ::gettimeofday #1780

Closed
huanghe2015 opened this issue May 25, 2020 · 11 comments
Closed

Ubuntu20.04 compilation error ::gettimeofday #1780

huanghe2015 opened this issue May 25, 2020 · 11 comments
Assignees
Labels
Bug It might be a bug. TransByAI Translated by AI/GPT.
Milestone

Comments

@huanghe2015
Copy link

huanghe2015 commented May 25, 2020

Description'

Please ensure that you maintain the markdown structure.

Please describe the issue you encountered here.
'
Make sure to maintain the markdown structure.

  1. SRS version: 3.0-b4
  2. The log for SRS is as follows:
make[1]: Entering directory "/home/ak88/Documents/srs-3.0-b4/trunk
Build the srs(simple rtmp server) over ST(state-threads)
make -f objs/Makefile srs
make[2]: Entering directory "/home/ak88/Documents/srs-3.0-b4/trunk
g++ -c -ansi -Wall -g -O0 \
          -Isrc/kernel -Isrc/core -Iobjs \
          -o objs/src/kernel/srs_kernel_utility.o src/kernel/srs_kernel_utility.cpp
src/kernel/srs_kernel_utility.cpp:128:43: error: invalid conversion from 'int (*)(timeval*, void*) throw ()' {aka 'int (*)(timeval*, void*)'} to '_srs_gettimeofday_t' {aka 'int (*)(timeval*, timezone*)'}' [-fpermissive]

128 | _srs_gettimeofday_t _srs_gettimeofday = ::gettimeofday;
| ~~^~~~~~~~~~~~
| |
| int ()(timeval, void*) throw () {aka int ()(timeval, void*)}

make[2]: *** [objs/Makefile:77: objs/src/kernel/srs_kernel_utility.o] Error 1
make[2]: Leaving directory '/home/ak88/Documents/srs-3.0-b4/trunk'
make[1]: *** [Makefile:75: server] Error 2
make[1]: Leaving directory '/home/ak88/Documents/srs-3.0-b4/trunk'
make: *** [Makefile:10: default] Error 2
1. The configuration of SRS is as follows (Config):
./configure --full --use-sys-ssl && make
**Replay**
> How to replay the bug?
  1. Ubuntu 20.04
  2. GCC 9.3.0

TRANS_BY_GPT3

@hesh915
Copy link

hesh915 commented May 26, 2020

I encountered the following error when compiling on Ubuntu.

./configure
User config: --x86-x64
Detail config: --prefix=/usr/local/srs --with-hls --with-hds --with-dvr --with-ssl --with-transcode --with-ingest --with-stat --with-http-callback --with-http-server --with-stream-caster --with-http-api --with-librtmp --without-research --without-utest --without-gperf --without-gmc --without-gmd --without-gmp --without-gcp --without-gprof --log-trace --cc=gcc --cxx=g++ --ar=ar --ld=ld --randlib=randlib
SRS_WORKDIR: ., SRS_OBJS_DIR: objs, SRS_OBJS: ./objs, SRS_PLATFORM: Platform-Linux-5.4.0-SRS3
Fast cleanup, if need to do full cleanup, please use: make clean
Checking gcc/g++/gdb/make.
Required tools are ok.
Installing tools for Ubuntu.
Tools for Ubuntu are installed.
SED is sed_utility
The state-threads is ok.
CherryPy-3.2.4 is ok.
Link players to cherrypy static-dir
Building openssl-1.1.0e.
Operating system: x86_64-whatever-linux2
"glob" is not exported by the File::Glob module
Can't continue after import errors at ./Configure line 17.
BEGIN failed--compilation aborted at ./Configure line 17.
"glob" is not exported by the File::Glob module
Can't continue after import errors at ./Configure line 17.
BEGIN failed--compilation aborted at ./Configure line 17.
This system (linux-x86_64) is not supported. See file INSTALL for details.
make: *** No targets specified and no makefile found. Stop.
Build openssl-1.1.0e failed, ret=2

TRANS_BY_GPT3

@huanghe2015
Copy link
Author

huanghe2015 commented May 27, 2020

I encountered the following error when compiling on Ubuntu.

./configure
User config: --x86-x64
Detail config: --prefix=/usr/local/srs --with-hls --with-hds --with-dvr --with-ssl --with-transcode --with-ingest --with-stat --with-http-callback --with-http-server --with-stream-caster --with-http-api --with-librtmp --without-research --without-utest --without-gperf --without-gmc --without-gmd --without-gmp --without-gcp --without-gprof --log-trace --cc=gcc --cxx=g++ --ar=ar --ld=ld --randlib=randlib
SRS_WORKDIR: ., SRS_OBJS_DIR: objs, SRS_OBJS: ./objs, SRS_PLATFORM: Platform-Linux-5.4.0-SRS3
Fast cleanup, if need to do full cleanup, please use: make clean
Checking gcc/g++/gdb/make.
Required tools are ok.
Installing tools for Ubuntu.
Tools for Ubuntu are installed.
SED is sed_utility
The state-threads is ok.
CherryPy-3.2.4 is ok.
Link players to cherrypy static-dir
Building openssl-1.1.0e.
Operating system: x86_64-whatever-linux2
"glob" is not exported by the File::Glob module
Can't continue after import errors at ./Configure line 17.
BEGIN failed--compilation aborted at ./Configure line 17.
"glob" is not exported by the File::Glob module
Can't continue after import errors at ./Configure line 17.
BEGIN failed--compilation aborted at ./Configure line 17.
This system (linux-x86_64) is not supported. See file INSTALL for details.
make: *** No targets specified and no makefile found. Stop.
Build openssl-1.1.0e failed, ret=2

This is an OpenSSL issue and has nothing to do with SRS.

TRANS_BY_GPT3

@hesh915
Copy link

hesh915 commented May 27, 2020

I encountered the following error when compiling on Ubuntu.
./configure
User config: --x86-x64
Detail config: --prefix=/usr/local/srs --with-hls --with-hds --with-dvr --with-ssl --with-transcode --with-ingest --with-stat --with-http-callback --with-http-server --with-stream-caster --with-http-api --with-librtmp --without-research --without-utest --without-gperf --without-gmc --without-gmd --without-gmp --without-gcp --without-gprof --log-trace --cc=gcc --cxx=g++ --ar=ar --ld=ld --randlib=randlib
SRS_WORKDIR: ., SRS_OBJS_DIR: objs, SRS_OBJS: ./objs, SRS_PLATFORM: Platform-Linux-5.4.0-SRS3
Fast cleanup, if need to do full cleanup, please use: make clean
Checking gcc/g++/gdb/make.
Required tools are ok.
Installing tools for Ubuntu.
Tools for Ubuntu are installed.
SED is sed_utility
The state-threads is ok.
CherryPy-3.2.4 is ok.
Link players to cherrypy static-dir
Building openssl-1.1.0e.
Operating system: x86_64-whatever-linux2
"glob" is not exported by the File::Glob module
Can't continue after import errors at ./Configure line 17.
BEGIN failed--compilation aborted at ./Configure line 17.
"glob" is not exported by the File::Glob module
Can't continue after import errors at ./Configure line 17.
BEGIN failed--compilation aborted at ./Configure line 17.
This system (linux-x86_64) is not supported. See file INSTALL for details.
make: *** No targets specified and no makefile found. Stop.
Build openssl-1.1.0e failed, ret=2

This is an OpenSSL issue, unrelated to SRS.

How should it be resolved?

TRANS_BY_GPT3

@huanghe2015
Copy link
Author

huanghe2015 commented May 28, 2020

I encountered the following error when compiling on Ubuntu.
./configure
User config: --x86-x64
Detail config: --prefix=/usr/local/srs --with-hls --with-hds --with-dvr --with-ssl --with-transcode --with-ingest --with-stat --with-http-callback --with-http-server --with-stream-caster --with-http-api --with-librtmp --without-research --without-utest --without-gperf --without-gmc --without-gmd --without-gmp --without-gcp --without-gprof --log-trace --cc=gcc --cxx=g++ --ar=ar --ld=ld --randlib=randlib
SRS_WORKDIR: ., SRS_OBJS_DIR: objs, SRS_OBJS: ./objs, SRS_PLATFORM: Platform-Linux-5.4.0-SRS3
Fast cleanup, if need to do full cleanup, please use: make clean
Checking gcc/g++/gdb/make.
Required tools are ok.
Installing tools for Ubuntu.
Tools for Ubuntu are installed.
SED is sed_utility
The state-threads is ok.
CherryPy-3.2.4 is ok.
Link players to cherrypy static-dir
Building openssl-1.1.0e.
Operating system: x86_64-whatever-linux2
"glob" is not exported by the File::Glob module
Can't continue after import errors at ./Configure line 17.
BEGIN failed--compilation aborted at ./Configure line 17.
"glob" is not exported by the File::Glob module
Can't continue after import errors at ./Configure line 17.
BEGIN failed--compilation aborted at ./Configure line 17.
This system (linux-x86_64) is not supported. See file INSTALL for details.
make: *** No targets specified and no makefile found. Stop.
Build openssl-1.1.0e failed, ret=2

This is an OpenSSL issue and has nothing to do with SRS.

How should it be resolved?

  • Replace the OpenSSL package, modify the compilation script, or use the system's built-in OpenSSL like I did.

TRANS_BY_GPT3

@hesh915
Copy link

hesh915 commented May 29, 2020

Description
'
Make sure to maintain the markdown structure.

Please describe your issue here.
'
Make sure to maintain the markdown structure.

  1. SRS version: 3.0-b4
  2. The log of SRS is as follows:

make[1]: Entering directory "/home/ak88/Documents/srs-3.0-b4/trunk
Build the srs(simple rtmp server) over ST(state-threads)
make -f objs/Makefile srs
make[2]: Entering directory "/home/ak88/Documents/srs-3.0-b4/trunk
g++ -c -ansi -Wall -g -O0
-Isrc/kernel -Isrc/core -Iobjs
-o objs/src/kernel/srs_kernel_utility.o src/kernel/srs_kernel_utility.cpp
src/kernel/srs_kernel_utility.cpp:128:43: error: invalid conversion from 'int ()(timeval, void*) throw ()' {aka 'int ()(timeval, void*)'} to '_srs_gettimeofday_t' {aka 'int ()(timeval, timezone*)'} [-fpermissive]
128 | _srs_gettimeofday_t _srs_gettimeofday = ::gettimeofday;
| ~~^~~~~~~~~~~~
| |
| int ()(timeval, void*) throw () {aka int ()(timeval, void*)}
make[2]: *** [objs/Makefile:77: objs/src/kernel/srs_kernel_utility.o] Error 1
make[2]: Leaving directory '/home/ak88/Documents/srs-3.0-b4/trunk'
make[1]: *** [Makefile:75: server] Error 2
make[1]: Leaving directory '/home/ak88/Documents/srs-3.0-b4/trunk'
make: *** [Makefile:10: default] Error 2

  1. SRS configuration is as follows (Config):
./configure --full --use-sys-ssl && make

Replay

How to replay bug?

  1. Ubuntu 20.04
  2. GCC 9.3.0

_srs_gettimeofday_t _srs_gettimeofday = ::gettimeofday needs to be changed to _srs_gettimeofday_t _srs_gettimeofday = (_srs_gettimeofday_t)::gettimeofday.

TRANS_BY_GPT3

@huanghe2015
Copy link
Author

huanghe2015 commented Jun 7, 2020

Next is OpenSSL, the next one.

TRANS_BY_GPT3

@huanghe2015
Copy link
Author

huanghe2015 commented Jul 6, 2020

OpenSSL Usage Record:
#1812
#1813

TRANS_BY_GPT3

@kentmay
Copy link

kentmay commented Jul 7, 2020

Firstly without utest

OpenSSL usage record:
#1812
#1813

Then modify the source file (src/kernel/srs_kernel_utility.cpp)

_srs_gettimeofday_t _srs_gettimeofday = ::gettimeofday needs to be changed to _srs_gettimeofday_t _srs_gettimeofday = (_srs_gettimeofday_t)::gettimeofday

The compilation passed, thank you very much to both of you.

TRANS_BY_GPT3

@winlinvip
Copy link
Member

winlinvip commented Oct 10, 2020

@HungMingWu @kentmay @huanghe2015 👍 The gettimeofday issue has been resolved. I have merged it: 13af54171

At the same time, I have set up a compilation environment for Ubuntu 20. You can directly use this image to compile SRS, and the resulting binary can be directly run on the machine: ossrs/srs:ubuntu20

Note: OpenSSL patch 968bb74c can also be applied to OpenSSL, but this requires a good understanding of the compilation process and is more difficult.

TRANS_BY_GPT3

@darrenhp
Copy link

darrenhp commented Oct 13, 2020

The error I encountered when compiling on Ubuntu is as follows:

./configure
User config: --x86-x64
Detail config: --prefix=/usr/local/srs --with-hls --with-hds --with-dvr --with-ssl --with-transcode --with-ingest --with-stat --with-http-callback --with-http-server --with-stream-caster --with-http-api --with-librtmp --without-research --without-utest --without-gperf --without-gmc --without-gmd --without-gmp --without-gcp --without-gprof --log-trace --cc=gcc --cxx=g++ --ar=ar --ld=ld --randlib=randlib
SRS_WORKDIR: ., SRS_OBJS_DIR: objs, SRS_OBJS: ./objs, SRS_PLATFORM: Platform-Linux-5.4.0-SRS3
Fast cleanup, if need to do full cleanup, please use: make clean
Checking gcc/g++/gdb/make.
Required tools are ok.
Installing tools for Ubuntu.
Tools for Ubuntu are installed.
SED is sed_utility
The state-threads is ok.
CherryPy-3.2.4 is ok.
Link players to cherrypy static-dir
Building openssl-1.1.0e.
Operating system: x86_64-whatever-linux2
"glob" is not exported by the File::Glob module
Can't continue after import errors at ./Configure line 17.
BEGIN failed--compilation aborted at ./Configure line 17.
"glob" is not exported by the File::Glob module
Can't continue after import errors at ./Configure line 17.
BEGIN failed--compilation aborted at ./Configure line 17.
This system (linux-x86_64) is not supported. See file INSTALL for details.
make: *** No targets specified and no makefile found. Stop.
Build openssl-1.1.0e failed, ret=2

Please check the version of Perl.
On my Mac, I encountered this issue because I installed Perl v5.32.0 using Homebrew.
If I temporarily move /usr/local/bin/perl to /usr/local/bin/perl.bak and use the system's default Perl v5.18.4, the issue is resolved.

Currently, I found a potentially related mail-archive at https://www.mail-archive.com/openssl-commits@openssl.org/msg14057.html.

Due to my lack of familiarity with openssl and perl, I am unable to delve into further details at the moment.

By the way, @winlinvip, have you considered updating an openssl version that can be compiled properly under higher versions of perl?

TRANS_BY_GPT3

@zzugyl
Copy link

zzugyl commented Nov 19, 2020

I am on Ubuntu 20.04.1, trying to download the 4.0 branch of git, but the "./configure" command failed.
I made a change in "trunk/auto/depends.sh":
Changed "OPENSSL_CANDIDATE="openssl-1.1.0e"" to "OPENSSL_CANDIDATE="openssl-OpenSSL_1_1_0l"".
Then I downloaded "openssl-OpenSSL_1_1_0l.zip" and placed it in "trunk/3rdparty/".
After that, the "./configure" command passed successfully.

TRANS_BY_GPT3

@winlinvip winlinvip changed the title Ubuntu20.04编译出错 Ubuntu20.04编译出错 ::gettimeofday Sep 4, 2021
@winlinvip winlinvip self-assigned this Sep 4, 2021
@winlinvip winlinvip added the Bug It might be a bug. label Sep 4, 2021
@winlinvip winlinvip added this to the 3.0 milestone Sep 4, 2021
@winlinvip winlinvip changed the title Ubuntu20.04编译出错 ::gettimeofday Ubuntu20.04 compilation error ::gettimeofday Jul 27, 2023
@winlinvip winlinvip added the TransByAI Translated by AI/GPT. label Jul 27, 2023
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
Bug It might be a bug. TransByAI Translated by AI/GPT.
Projects
None yet
Development

No branches or pull requests

6 participants