[Bug 266053] Build failure when building res_geolocation

From: <bugzilla-noreply_at_freebsd.org>
Date: Fri, 26 Aug 2022 19:28:32 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=266053

            Bug ID: 266053
           Summary: Build failure when building res_geolocation
           Product: Ports & Packages
           Version: Latest
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: Individual Port(s)
          Assignee: madpilot@FreeBSD.org
          Reporter: seneca@vybenetworks.com
          Assignee: madpilot@FreeBSD.org
             Flags: maintainer-feedback?(madpilot@FreeBSD.org)

Asterisk 16.28.0 introduced a new module: res_geolocation (and also a
corresponding res_pjsip_geolocation).  Building this module fails, and the
failure is connected to some newly-added rules to asterisk/Makefile.rules that
are supposed to generate .o files from XML or XSLT source files using just
cc/ld (lines 207-220).  A sample invocation with a trivial foo.xml that
includes the expanded ld invocation is:

 $ cc -g -nostartfiles  -nodefaultlibs -nostdlib -r -Wl,-b,binary -o foo.o
foo.xml
 ld: error: target emulation unknown: -m or at least one .o file required
 cc: error: linker command failed with exit code 1 (use -v to see invocation)
 $ cc -v -g -nostartfiles  -nodefaultlibs -nostdlib -r -Wl,-b,binary -o foo.o
foo.xml
 FreeBSD clang version 13.0.0 (git@github.com:llvm/llvm-project.git
llvmorg-13.0.0-0-gd7b669b3a303)
 Target: x86_64-unknown-freebsd13.1
 Thread model: posix
 InstalledDir: /usr/bin
  "/usr/bin/ld" --eh-frame-hdr -dynamic-linker /libexec/ld-elf.so.1
--hash-style=both --enable-new-dtags -o foo.o -L/usr/lib -r -r -b binary
foo.xml
 ld: error: target emulation unknown: -m or at least one .o file required
 cc: error: linker command failed with exit code 1 (use -v to see invocation)
 $

I have attempted the build in two different manners on this system: poudriere
and portmaster, both with the same options file.  The poudriere build
completes, but it does not attempt to build res_geolocation.  The portmaster
build fails on turning the res_geolocation XML files into objects.  I have not
yet found the difference in the environments that caused the difference in
whether or not builds of res_geolocation are attempted.

Build output specifically of res_geolocation:

 cc -o res_geolocation.o -c res_geolocation.c -MD -MT res_geolocation.o -MF
.res_geolocation.o.d -MP -pthread
-I/usr/obj/usr/ports/net/asterisk16/work/asterisk-16.28.0/include -O2 -pipe 
-I/usr/local/include/lua52 -DLIBICONV_PLUG -fstack-protector-strong -isystem
/usr/local/include -fno-strict-aliasing   -I/usr/local/include/libxml2 -Wall
-Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations  -fblocks 
-isystem /usr/local/include -O3 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fPIC
-DAST_MODULE=\"res_geolocation\"
-DAST_MODULE_SELF_SYM=__internal_res_geolocation_self 
-I/usr/local/include/libxml2 -I/usr/local/include/libxml2 -O2 -pipe 
-I/usr/local/include/lua52 -DLIBICONV_PLUG -fstack-protector-strong -isystem
/usr/local/include -fno-strict-aliasing  -Wno-unused-value
-Wno-parentheses-equality
 cc -o res_geolocation/geoloc_civicaddr.o -c res_geolocation/geoloc_civicaddr.c
-MD -MT res_geolocation/geoloc_civicaddr.o -MF
.res_geolocation_geoloc_civicaddr.o.d -MP -pthread
-I/usr/obj/usr/ports/net/asterisk16/work/asterisk-16.28.0/include -O2 -pipe 
-I/usr/local/include/lua52 -DLIBICONV_PLUG -fstack-protector-strong -isystem
/usr/local/include -fno-strict-aliasing   -I/usr/local/include/libxml2 -Wall 
-Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations  -fblocks 
-isystem /usr/local/include -O3 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fPIC
-DAST_MODULE=\"res_geolocation\"
-DAST_MODULE_SELF_SYM=__internal_res_geolocation_self 
-I/usr/local/include/libxml2 -I/usr/local/include/libxml2 -O2 -pipe 
-I/usr/local/include/lua52 -DLIBICONV_PLUG -fstack-protector-strong -isystem
/usr/local/include -fno-strict-aliasing  -Wno-unused-value
-Wno-parentheses-equality
 cc -o res_geolocation/geoloc_common.o -c res_geolocation/geoloc_common.c -MD
-MT res_geolocation/geoloc_common.o -MF .res_geolocation_geoloc_common.o.d -MP
-pthread -I/usr/obj/usr/ports/net/asterisk16/work/asterisk-16.28.0/include -O2
-pipe  -I/usr/local/include/lua52 -DLIBICONV_PLUG -fstack-protector-strong
-isystem /usr/local/include -fno-strict-aliasing   -I/usr/local/include/libxml2
-Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations  -fblocks
 -isystem /usr/local/include -O3 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fPIC
-DAST_MODULE=\"res_geolocation\"
-DAST_MODULE_SELF_SYM=__internal_res_geolocation_self 
-I/usr/local/include/libxml2 -I/usr/local/include/libxml2 -O2 -pipe 
-I/usr/local/include/lua52 -DLIBICONV_PLUG -fstack-protector-strong -isystem
/usr/local/include -fno-strict-aliasing  -Wno-unused-value
-Wno-parentheses-equality
 cc -o res_geolocation/geoloc_config.o -c res_geolocation/geoloc_config.c -MD
-MT res_geolocation/geoloc_config.o -MF .res_geolocation_geoloc_config.o.d -MP
-pthread -I/usr/obj/usr/ports/net/asterisk16/work/asterisk-16.28.0/include -O2
-pipe  -I/usr/local/include/lua52 -DLIBICONV_PLUG -fstack-protector-strong
-isystem /usr/local/include -fno-strict-aliasing   -I/usr/local/include/libxml2
-Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations  -fblocks
 -isystem /usr/local/include -O3 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fPIC
-DAST_MODULE=\"res_geolocation\"
-DAST_MODULE_SELF_SYM=__internal_res_geolocation_self 
-I/usr/local/include/libxml2 -I/usr/local/include/libxml2 -O2 -pipe 
-I/usr/local/include/lua52 -DLIBICONV_PLUG -fstack-protector-strong -isystem
/usr/local/include -fno-strict-aliasing  -Wno-unused-value
-Wno-parentheses-equality
 res_geolocation/geoloc_config.c:600:81: warning: expression which evaluates to
zero treated as a null pointer constant of type 'const char *'
[-Wnon-literal-null-conversion]
        ast_sorcery_object_field_register_custom(geoloc_sorcery, "location",
"format", AST_GEOLOC_FORMAT_NONE,
                                                                               
        ^~~~~~~~~~~~~~~~~~~~~~
/usr/obj/usr/ports/net/asterisk16/work/asterisk-16.28.0/include/asterisk/sorcery.h:1006:62:
note: expanded from macro 'ast_sorcery_object_field_register_custom'
    __ast_sorcery_object_field_register(sorcery, type, name, default_val,
OPT_CUSTOM_T, config_handler, sorcery_handler, multiple_handler, flags, 0, 0,
VA_NARGS(__VA_ARGS__), __VA_ARGS__);
                                                              ^~~~~~~~~~~
1 warning generated.
 cc -o res_geolocation/geoloc_datastore.o -c res_geolocation/geoloc_datastore.c
-MD -MT res_geolocation/geoloc_datastore.o -MF
.res_geolocation_geoloc_datastore.o.d -MP -pthread
-I/usr/obj/usr/ports/net/asterisk16/work/asterisk-16.28.0/include -O2 -pipe 
-I/usr/local/include/lua52 -DLIBICONV_PLUG -fstack-protector-strong -isystem
/usr/local/include -fno-strict-aliasing   -I/usr/local/include/libxml2 -Wall
-Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations  -fblocks 
-isystem /usr/local/include -O3 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fPIC
-DAST_MODULE=\"res_geolocation\"
-DAST_MODULE_SELF_SYM=__internal_res_geolocation_self 
-I/usr/local/include/libxml2 -I/usr/local/include/libxml2 -O2 -pipe 
-I/usr/local/include/lua52 -DLIBICONV_PLUG -fstack-protector-strong -isystem
/usr/local/include -fno-strict-aliasing  -Wno-unused-value
-Wno-parentheses-equality
 cc -o res_geolocation/geoloc_dialplan.o -c res_geolocation/geoloc_dialplan.c
-MD -MT res_geolocation/geoloc_dialplan.o -MF
.res_geolocation_geoloc_dialplan.o.d -MP -pthread
-I/usr/obj/usr/ports/net/asterisk16/work/asterisk-16.28.0/include -O2 -pipe 
-I/usr/local/include/lua52 -DLIBICONV_PLUG -fstack-protector-strong -isystem
/usr/local/include -fno-strict-aliasing   -I/usr/local/include/libxml2 -Wall
-Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations  -fblocks 
-isystem /usr/local/include -O3 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fPIC
-DAST_MODULE=\"res_geolocation\"
-DAST_MODULE_SELF_SYM=__internal_res_geolocation_self 
-I/usr/local/include/libxml2 -I/usr/local/include/libxml2 -O2 -pipe 
-I/usr/local/include/lua52 -DLIBICONV_PLUG -fstack-protector-strong -isystem
/usr/local/include -fno-strict-aliasing  -Wno-unused-value
-Wno-parentheses-equality
 cc -o res_geolocation/geoloc_eprofile.o -c res_geolocation/geoloc_eprofile.c
-MD -MT res_geolocation/geoloc_eprofile.o -MF
.res_geolocation_geoloc_eprofile.o.d -MP -pthread
-I/usr/obj/usr/ports/net/asterisk16/work/asterisk-16.28.0/include -O2 -pipe 
-I/usr/local/include/lua52 -DLIBICONV_PLUG -fstack-protector-strong -isystem
/usr/local/include -fno-strict-aliasing   -I/usr/local/include/libxml2 -Wall
-Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations  -fblocks 
-isystem /usr/local/include -O3 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fPIC
-DAST_MODULE=\"res_geolocation\"
-DAST_MODULE_SELF_SYM=__internal_res_geolocation_self 
-I/usr/local/include/libxml2 -I/usr/local/include/libxml2 -O2 -pipe 
-I/usr/local/include/lua52 -DLIBICONV_PLUG -fstack-protector-strong -isystem
/usr/local/include -fno-strict-aliasing  -Wno-unused-value
-Wno-parentheses-equality
 cc -o res_geolocation/geoloc_gml.o -c res_geolocation/geoloc_gml.c -MD -MT
res_geolocation/geoloc_gml.o -MF .res_geolocation_geoloc_gml.o.d -MP -pthread
-I/usr/obj/usr/ports/net/asterisk16/work/asterisk-16.28.0/include -O2 -pipe 
-I/usr/local/include/lua52 -DLIBICONV_PLUG -fstack-protector-strong -isystem
/usr/local/include -fno-strict-aliasing   -I/usr/local/include/libxml2 -Wall
-Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations  -fblocks 
-isystem /usr/local/include -O3 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fPIC
-DAST_MODULE=\"res_geolocation\"
-DAST_MODULE_SELF_SYM=__internal_res_geolocation_self 
-I/usr/local/include/libxml2 -I/usr/local/include/libxml2 -O2 -pipe 
-I/usr/local/include/lua52 -DLIBICONV_PLUG -fstack-protector-strong -isystem
/usr/local/include -fno-strict-aliasing  -Wno-unused-value
-Wno-parentheses-equality
 cc -g -nostartfiles  -nodefaultlibs -nostdlib -r -Wl,-b,binary -o
res_geolocation/pidf_lo_test.o res_geolocation/pidf_lo_test.xml
 ld: error: target emulation unknown: -m or at least one .o file required
 cc: error: linker command failed with exit code 1 (use -v to see invocation)
 gmake[2]: ***
[/usr/obj/usr/ports/net/asterisk16/work/asterisk-16.28.0/Makefile.rules:216:
res_geolocation/pidf_lo_test.o] Error 1
 gmake[2]: Leaving directory
'/usr/obj/usr/ports/net/asterisk16/work/asterisk-16.28.0/res'
 gmake[1]: *** [Makefile:396: res] Error 2
 gmake[1]: Leaving directory
'/usr/obj/usr/ports/net/asterisk16/work/asterisk-16.28.0'
 *** Error code 1

 Stop.
 make: stopped in /usr/ports/net/asterisk16

 ===>>> make build failed for net/asterisk16

-- 
You are receiving this mail because:
You are the assignee for the bug.