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

libosmocore: add patch to fix darwin build #57038

Closed
wants to merge 1 commit into from

Conversation

@markuskowa
Copy link
Member

markuskowa commented Mar 7, 2019

Motivation for this change

Fix the libosmocore on darwin. Based on https://osmocom.org/issues/3722

Let's see if it builds on darwin now. @Mic92

Things done
  • Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
  • Built on platform(s)
    • NixOS
    • macOS
    • other Linux distributions
  • Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
  • Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
  • Tested execution of all binary files (usually in ./result/bin/)
  • Determined the impact on package closure size (by running nix path-info -S before and after)
  • Assured whether relevant documentation is up to date
  • Fits CONTRIBUTING.md.

@markuskowa
Copy link
Member Author

markuskowa commented Mar 7, 2019

@GrahamcOfBorg build libosmocore

@Mic92
Copy link
Contributor

Mic92 commented Mar 8, 2019

Looks like a broken builder to me:

@GrahamcOfBorg build libosmocore

@markuskowa
Copy link
Member Author

markuskowa commented Mar 8, 2019

That is is odd. @Mic92 Can you build it locally (I don't have a mac)?

@Mic92
Copy link
Contributor

Mic92 commented Mar 8, 2019

@markuskowa I can't either.

@markuskowa
Copy link
Member Author

markuskowa commented Mar 8, 2019

@Mic92 thanks for checking. I guess it is not a builder (machine) problem then?

@Mic92
Copy link
Contributor

Mic92 commented Mar 8, 2019

@markuskowa I think it is one actually.

@Mic92 Mic92 requested a review from alyssais Mar 8, 2019
@alyssais
Copy link
Member

alyssais commented Mar 11, 2019

I was unable to build locally

these derivations will be built:
  /nix/store/1g892qpfngm817lmpijy1rnwqhs84y8d-libosmocore-1.0.1.drv
building '/nix/store/1g892qpfngm817lmpijy1rnwqhs84y8d-libosmocore-1.0.1.drv'...
unpacking sources
unpacking source archive /nix/store/qxgk03lksyxa884g8vl0mjhjfzg3p37l-source
source root is source
patching sources
autoreconfPhase
autoreconf: Entering directory `.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal --force -I m4
autoreconf: configure.ac: tracing
autoreconf: running: libtoolize --copy --force
libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, '.'.
libtoolize: copying file './ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'm4'.
libtoolize: copying file 'm4/libtool.m4'
libtoolize: copying file 'm4/ltoptions.m4'
libtoolize: copying file 'm4/ltsugar.m4'
libtoolize: copying file 'm4/ltversion.m4'
libtoolize: copying file 'm4/lt~obsolete.m4'
autoreconf: running: /nix/store/l3hxsam6jr66b0dqmcdinrb61jmwc0c9-autoconf-2.69/bin/autoconf --force
autoreconf: running: /nix/store/l3hxsam6jr66b0dqmcdinrb61jmwc0c9-autoconf-2.69/bin/autoheader --force
autoreconf: running: automake --add-missing --copy --force-missing
configure.ac:21: installing './compile'
configure.ac:23: installing './config.guess'
configure.ac:23: installing './config.sub'
configure.ac:8: installing './install-sh'
configure.ac:8: installing './missing'
src/Makefile.am: installing './depcomp'
autoreconf: Leaving directory `.'
configuring
fixing libtool script ./ltmain.sh
configure flags: --disable-static --disable-dependency-tracking --prefix=/nix/store/vk7nkf9krrhiglr0y825kzfddw4w54q3-libosmocore-1.0.1
checking for a BSD-compatible install... /nix/store/j7zs3jc0fw6zcrxlv7yn1arhd03m46ly-coreutils-8.30/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /nix/store/j7zs3jc0fw6zcrxlv7yn1arhd03m46ly-coreutils-8.30/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether make supports nested variables... (cached) yes
checking whether make sets $(MAKE)... (cached) yes
checking for gcc... clang
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether clang accepts -g... yes
checking for clang option to accept ISO C89... none needed
checking whether clang understands -c and -o together... yes
checking whether make supports the include directive... yes (GNU style)
checking dependency style of clang... none
checking build system type... x86_64-apple-darwin17.7.0
checking host system type... x86_64-apple-darwin17.7.0
checking how to print strings... printf
checking for a sed that does not truncate output... /nix/store/bcr6l9brsaj1mm5i0zb9l8p2g6jc9zaf-gnused-4.7/bin/sed
checking for grep that handles long lines and -e... /nix/store/phhr3rlnm16zhnwiwmbmvq712ai8z02v-gnugrep-3.3/bin/grep
checking for egrep... /nix/store/phhr3rlnm16zhnwiwmbmvq712ai8z02v-gnugrep-3.3/bin/grep -E
checking for fgrep... /nix/store/phhr3rlnm16zhnwiwmbmvq712ai8z02v-gnugrep-3.3/bin/grep -F
checking for ld used by clang... ld
checking if the linker (ld) is GNU ld... no
checking for BSD- or MS-compatible name lister (nm)... nm
checking the name lister (nm) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 196608
checking how to convert x86_64-apple-darwin17.7.0 file names to x86_64-apple-darwin17.7.0 format... func_convert_file_noop
checking how to convert x86_64-apple-darwin17.7.0 file names to toolchain format... func_convert_file_noop
checking for ld option to reload object files... -r
checking for objdump... no
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for archiver @FILE support... no
checking for strip... strip
checking for ranlib... ranlib
checking command to parse nm output from clang object... ok
checking for sysroot... no
checking for a working dd... /nix/store/j7zs3jc0fw6zcrxlv7yn1arhd03m46ly-coreutils-8.30/bin/dd
checking how to truncate binary pipes... /nix/store/j7zs3jc0fw6zcrxlv7yn1arhd03m46ly-coreutils-8.30/bin/dd bs=4096 count=1
checking for mt... no
checking if : is a manifest tool... no
checking for dsymutil... dsymutil
checking for nmedit... no
checking for lipo... lipo
checking for otool... otool
checking for otool64... no
checking for -single_module linker flag... yes
checking for -exported_symbols_list linker flag... yes
checking for -force_load linker flag... yes
checking how to run the C preprocessor... clang -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if clang supports -fno-rtti -fno-exceptions... yes
checking for clang option to produce PIC... -fno-common -DPIC
checking if clang PIC flag -fno-common -DPIC works... yes
checking if clang static flag -static works... no
checking if clang supports -c -o file.o... yes
checking if clang supports -c -o file.o... (cached) yes
checking whether the clang linker (ld) supports shared libraries... yes
checking dynamic linker characteristics... darwin17.7.0 dyld
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... no
checking for pkg-config... /nix/store/2gd9yr8fgmv0g4n82qz3l9q9fk81qvix-pkg-config-0.29.2/bin/pkg-config
checking for pkg-config... /nix/store/2gd9yr8fgmv0g4n82qz3l9q9fk81qvix-pkg-config-0.29.2/bin/pkg-config
checking pkg-config is at least version 0.20... yes
checking for ANSI C header files... (cached) yes
checking execinfo.h usability... yes
checking execinfo.h presence... yes
checking for execinfo.h... yes
checking sys/select.h usability... yes
checking sys/select.h presence... yes
checking for sys/select.h... yes
checking sys/socket.h usability... yes
checking sys/socket.h presence... yes
checking for sys/socket.h... yes
checking sys/timerfd.h usability... no
checking sys/timerfd.h presence... no
checking for sys/timerfd.h... no
checking syslog.h usability... yes
checking syslog.h presence... yes
checking for syslog.h... yes
checking ctype.h usability... yes
checking ctype.h presence... yes
checking for ctype.h... yes
checking netinet/tcp.h usability... yes
checking netinet/tcp.h presence... yes
checking for netinet/tcp.h... yes
checking for size_t... yes
checking for working alloca.h... yes
checking for alloca... yes
checking for library containing dlopen... none required
checking for library containing dlsym... none required
checking for backtrace in -lexecinfo... no
checking for library containing clock_gettime... no
checking for doxygen... false
checking whether SYS_getrandom is declared... no
checking if clang supports -fvisibility=hidden... yes
checking for clock_gettime... no
checking for localtime_r... yes
checking whether struct tm has tm_gmtoff member... yes
checking for talloc >= 2.0.1... yes
checking for libpcsclite... yes
checking for gnutls >= 2.12.0... yes
checking whether to enable VTY/CTRL tests... no
checking whether C compiler accepts -mavx2... yes
checking whether C compiler accepts -mssse3... yes
checking whether C compiler accepts -msse4.1... yes
checking whether clang has __builtin_cpu_supports built-in... yes
CFLAGS="-g -O2 -DBUILDING_LIBOSMOCORE -Wall"
CPPFLAGS=" -DBUILDING_LIBOSMOCORE -Wall"
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating libosmocore.pc
config.status: creating libosmocodec.pc
config.status: creating libosmocoding.pc
config.status: creating libosmovty.pc
config.status: creating libosmogsm.pc
config.status: creating libosmogb.pc
config.status: creating libosmoctrl.pc
config.status: creating libosmosim.pc
config.status: creating include/Makefile
config.status: creating src/Makefile
config.status: creating src/vty/Makefile
config.status: creating src/codec/Makefile
config.status: creating src/coding/Makefile
config.status: creating src/sim/Makefile
config.status: creating src/gsm/Makefile
config.status: creating src/gb/Makefile
config.status: creating src/ctrl/Makefile
config.status: creating src/pseudotalloc/Makefile
config.status: creating tests/Makefile
config.status: creating tests/atlocal
config.status: creating utils/Makefile
config.status: creating Doxyfile.core
config.status: creating Doxyfile.gsm
config.status: creating Doxyfile.vty
config.status: creating Doxyfile.codec
config.status: creating Doxyfile.coding
config.status: creating Doxyfile.gb
config.status: creating Doxyfile.ctrl
config.status: creating Makefile
config.status: creating config.h
config.status: executing tests/atconfig commands
config.status: executing depfiles commands
config.status: executing libtool commands
building
build flags: -j4 -l4 SHELL=/nix/store/g9cis4hsnzcjkzfa77nif7kzq9bsqmpg-bash-4.4-p23/bin/bash
echo UNKNOWN > .version-t && mv .version-t .version
make  all-recursive
make[1]: Entering directory '/private/tmp/nix-build-libosmocore-1.0.1.drv-0/source'
Making all in include
make[2]: Entering directory '/private/tmp/nix-build-libosmocore-1.0.1.drv-0/source/include'
  GEN      osmocom/gsm/gsm0503.h
Generating header file...
Generate 'xcch' declaration
Generate 'rach' declaration
Generate 'rach_ext' declaration
Generate 'sch' declaration
Generate 'cs2' declaration
Generate 'cs3' declaration
Generate 'cs2_np' declaration
Generate 'cs3_np' declaration
Generate 'tch_afs_12_2' declaration
Generate 'tch_afs_10_2' declaration
Generate 'tch_afs_7_95' declaration
Generate 'tch_afs_7_4' declaration
Generate 'tch_afs_6_7' declaration
Generate 'tch_afs_5_9' declaration
Generate 'tch_afs_5_15' declaration
Generate 'tch_afs_4_75' declaration
Generate 'tch_fr' declaration
Generate 'tch_hr' declaration
Generate 'tch_ahs_7_95' declaration
Generate 'tch_ahs_7_4' declaration
Generate 'tch_ahs_6_7' declaration
Generate 'tch_ahs_5_9' declaration
Generate 'tch_ahs_5_15' declaration
Generate 'tch_ahs_4_75' declaration
Generate 'mcs1_dl_hdr' declaration
Generate 'mcs1_ul_hdr' declaration
Generate 'mcs1' declaration
Generate 'mcs2' declaration
Generate 'mcs3' declaration
Generate 'mcs4' declaration
Generate 'mcs5_dl_hdr' declaration
Generate 'mcs5_ul_hdr' declaration
Generate 'mcs5' declaration
Generate 'mcs6' declaration
Generate 'mcs7_dl_hdr' declaration
Generate 'mcs7_ul_hdr' declaration
Generate 'mcs7' declaration
Generate 'mcs8' declaration
Generate 'mcs9' declaration
Generation complete.
make  all-am
make[3]: Entering directory '/private/tmp/nix-build-libosmocore-1.0.1.drv-0/source/include'
  GEN      osmocom/core/bit16gen.h
  GEN      osmocom/core/bit32gen.h
  GEN      osmocom/core/bit64gen.h
  GEN      osmocom/core/crc16gen.h
  GEN      osmocom/core/bit32gen.h
  GEN      osmocom/core/bit64gen.h
  GEN      osmocom/core/bit16gen.h
  GEN      osmocom/core/crc16gen.h
  GEN      osmocom/core/crc32gen.h
  GEN      osmocom/core/crc64gen.h
  GEN      osmocom/core/crc8gen.h
  GEN      osmocom/core/crc32gen.h
  GEN      osmocom/core/crc8gen.h
  GEN      osmocom/core/crc64gen.h
make[3]: Leaving directory '/private/tmp/nix-build-libosmocore-1.0.1.drv-0/source/include'
make[2]: Leaving directory '/private/tmp/nix-build-libosmocore-1.0.1.drv-0/source/include'
Making all in src
make[2]: Entering directory '/private/tmp/nix-build-libosmocore-1.0.1.drv-0/source/src'
  GEN      crc8gen.c
  GEN      crc16gen.c
  GEN      crc32gen.c
  GEN      crc64gen.c
make  all-am
make[3]: Entering directory '/private/tmp/nix-build-libosmocore-1.0.1.drv-0/source/src'
  CC       timer.lo
  CC       timer_gettimeofday.lo
  CC       timer_clockgettime.lo
  CC       select.lo
In file included from timer.c:38:
../include/osmocom/core/timer.h:92:24: error: unknown type name 'clockid_t'; did you mean 'clock_t'?
int osmo_clock_gettime(clockid_t clk_id, struct timespec *tp);
                       ^~~~~~~~~
                       clock_t
/nix/store/l77bg1s15f0wgjf4c12fc29ghvjbswwy-Libsystem-osx-10.11.6/include/sys/_types/_clock_t.h:30:33: note: 'clock_t' declared here
typedef __darwin_clock_t        clock_t;
                                ^
In file included from timer.c:38:
../include/osmocom/core/timer.h:102:33: error: unknown type name 'clockid_t'; did you mean 'clock_t'?
void osmo_clock_override_enable(clockid_t clk_id, bool enable);
                                ^~~~~~~~~
                                clock_t
/nix/store/l77bg1s15f0wgjf4c12fc29ghvjbswwy-Libsystem-osx-10.11.6/include/sys/_types/_clock_t.h:30:33: note: 'clock_t' declared here
typedef __darwin_clock_t        clock_t;
                                ^
In file included from timer.c:38:
../include/osmocom/core/timer.h:103:30: error: unknown type name 'clockid_t'; did you mean 'clock_t'?
void osmo_clock_override_add(clockid_t clk_id, time_t secs, long nsecs);
                             ^~~~~~~~~
                             clock_t
/nix/store/l77bg1s15f0wgjf4c12fc29ghvjbswwy-Libsystem-osx-10.11.6/include/sys/_types/_clock_t.h:30:33: note: 'clock_t' declared here
typedef __darwin_clock_t        clock_t;
                                ^
In file included from timer.c:38:
../include/osmocom/core/timer.h:104:50: error: unknown type name 'clockid_t'; did you mean 'clock_t'?
struct timespec *osmo_clock_override_gettimespec(clockid_t clk_id);
                                                 ^~~~~~~~~
                                                 clock_t
/nix/store/l77bg1s15f0wgjf4c12fc29ghvjbswwy-Libsystem-osx-10.11.6/include/sys/_types/_clock_t.h:30:33: note: 'clock_t' declared here
typedef __darwin_clock_t        clock_t;
                                ^
4 errors generated.
In file included from select.c:37:
../include/osmocom/core/timer.h:92:24: error: unknown type name 'clockid_t'; did you mean 'clock_t'?
int osmo_clock_gettime(clockid_t clk_id, struct timespec *tp);
                       ^~~~~~~~~
                       clock_t
/nix/store/l77bg1s15f0wgjf4c12fc29ghvjbswwy-Libsystem-osx-10.11.6/include/sys/_types/_clock_t.h:30:33: note: 'clock_t' declared here
typedef __darwin_clock_t        clock_t;
                                ^
In file included from select.c:37:
../include/osmocom/core/timer.h:102:33: error: unknown type name 'clockid_t'; did you mean 'clock_t'?
void osmo_clock_override_enable(clockid_t clk_id, bool enable);
                                ^~~~~~~~~
                                clock_t
/nix/store/l77bg1s15f0wgjf4c12fc29ghvjbswwy-Libsystem-osx-10.11.6/include/sys/_types/_clock_t.h:30:33: note: 'clock_t' declared here
typedef __darwin_clock_t        clock_t;
                                ^
In file included from select.c:37:
../include/osmocom/core/timer.h:103:30: error: unknown type name 'clockid_t'; did you mean 'clock_t'?
void osmo_clock_override_add(clockid_t clk_id, time_t secs, long nsecs);
                             ^~~~~~~~~
                             clock_t
/nix/store/l77bg1s15f0wgjf4c12fc29ghvjbswwy-Libsystem-osx-10.11.6/include/sys/_types/_clock_t.h:30:33: note: 'clock_t' declared here
typedef __darwin_clock_t        clock_t;
                                ^
In file included from select.c:37:
../include/osmocom/core/timer.h:104:50: error: unknown type name 'clockid_t'; did you mean 'clock_t'?
struct timespec *osmo_clock_override_gettimespec(clockid_t clk_id);
                                                 ^~~~~~~~~
                                                 clock_t
/nix/store/l77bg1s15f0wgjf4c12fc29ghvjbswwy-Libsystem-osx-10.11.6/include/sys/_types/_clock_t.h:30:33: note: 'clock_t' declared here
typedef __darwin_clock_t        clock_t;
                                ^
4 errors generated.
make[3]: *** [Makefile:594: timer.lo] Error 1
make[3]: *** Waiting for unfinished jobs....
  CC       signal.lo
make[3]: *** [Makefile:594: select.lo] Error 1
make[3]: Leaving directory '/private/tmp/nix-build-libosmocore-1.0.1.drv-0/source/src'
make[2]: *** [Makefile:441: all] Error 2
make[2]: Leaving directory '/private/tmp/nix-build-libosmocore-1.0.1.drv-0/source/src'
make[1]: *** [Makefile:614: all-recursive] Error 1
make[1]: Leaving directory '/private/tmp/nix-build-libosmocore-1.0.1.drv-0/source'
make: *** [Makefile:418: all] Error 2
builder for '/nix/store/1g892qpfngm817lmpijy1rnwqhs84y8d-libosmocore-1.0.1.drv' failed with exit code 2
error: build of '/nix/store/1g892qpfngm817lmpijy1rnwqhs84y8d-libosmocore-1.0.1.drv' failed
@markuskowa markuskowa force-pushed the markuskowa:fix-osmocore branch from 3ab975e to 942a85e Oct 1, 2019
@ofborg ofborg bot requested a review from mogorman Oct 1, 2019
@stale
Copy link

stale bot commented Jun 1, 2020

Thank you for your contributions.
This has been automatically marked as stale because it has had no activity for 180 days.
If this is still important to you, we ask that you leave a comment below. Your comment can be as simple as "still important to me". This lets people see that at least one person still cares about this. Someone will have to do this at most twice a year if there is no other activity.
Here are suggestions that might help resolve this more quickly:

  1. Search for maintainers and people that previously touched the
    related code and @ mention them in a comment.
  2. Ask on the NixOS Discourse. 3. Ask on the #nixos channel on
    irc.freenode.net.
@stale stale bot added the 2.status: stale label Jun 1, 2020
@markuskowa markuskowa closed this Jun 1, 2020
@markuskowa markuskowa deleted the markuskowa:fix-osmocore branch Jun 1, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked issues

Successfully merging this pull request may close these issues.

None yet

4 participants
You can’t perform that action at this time.