Skip to content

Unable to build C stubs on macOS #5

@reykjalin

Description

@reykjalin

When I try to build the C stubs I see errors that look like this:

./c_stubs/SFTime_cstub.c:89:5: error: use of GNU old-style field designator extension [-Werror,-Wgnu-designator]
    identifier:  "sfTime struct",
    ^~~~~~~~~~~
    .identifier =

It seems that Apple Clang is complaining about using older versions of struct field initialization, and fixing the problem should be as simple as adding a . in front of each field.

Full output during build
/Applications/Xcode.app/Contents/Developer/usr/bin/make -C src c_all
ocamldep SF*.ml SF*.mli oo_*.ml oo_*.mli > ml_depend.mk
ocamlopt -g -w A -ccopt "-Wall -Werror -Wno-deprecated-declarations" -c -ccopt "-I/usr/include/" ./c_stubs/sf_caml_conv_c.c
ocamlopt -g -w A -ccopt "-Wall -Werror -Wno-deprecated-declarations" -c -ccopt "-I/usr/include/" ./c_stubs/sf_conv_vectors_c.c
ocamlopt -g -w A -ccopt "-Wall -Werror -Wno-deprecated-declarations" -c -ccopt "-I/usr/include/" ./c_stubs/SFConfig_cstub.c
ocamlopt -g -w A -ccopt "-Wall -Werror -Wno-deprecated-declarations" -c -ccopt "-I/usr/include/" ./c_stubs/SFTime_cstub.c
./c_stubs/SFTime_cstub.c:89:5: error: use of GNU old-style field designator extension [-Werror,-Wgnu-designator]
    identifier:  "sfTime struct",
    ^~~~~~~~~~~
    .identifier =
./c_stubs/SFTime_cstub.c:90:5: error: use of GNU old-style field designator extension [-Werror,-Wgnu-designator]
    finalize:    custom_finalize_default,
    ^~~~~~~~~
    .finalize =
./c_stubs/SFTime_cstub.c:91:5: error: use of GNU old-style field designator extension [-Werror,-Wgnu-designator]
    compare:     custom_compare_default,
    ^~~~~~~~
    .compare =
./c_stubs/SFTime_cstub.c:92:5: error: use of GNU old-style field designator extension [-Werror,-Wgnu-designator]
    hash:        custom_hash_default,
    ^~~~~
    .hash =
./c_stubs/SFTime_cstub.c:93:5: error: use of GNU old-style field designator extension [-Werror,-Wgnu-designator]
    serialize:   custom_serialize_default,
    ^~~~~~~~~~
    .serialize =
./c_stubs/SFTime_cstub.c:94:5: error: use of GNU old-style field designator extension [-Werror,-Wgnu-designator]
    deserialize: custom_deserialize_default
    ^~~~~~~~~~~~
    .deserialize =
6 errors generated.
make[1]: *** [SFTime_cstub.o] Error 2
make: *** [c_all] Error 2

I'm using Apple Clang version 12.0.0. Full version output:

Apple clang version 12.0.0 (clang-1200.0.32.2)
Target: x86_64-apple-darwin19.6.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions