[asterisk-bugs] [JIRA] (ASTERISK-28411) Build link error bundled pjproject : relocation against symbol cant be used when shared object

PICCORO Lenz McKAY (JIRA) noreply at issues.asterisk.org
Thu May 9 10:32:47 CDT 2019


    [ https://issues.asterisk.org/jira/browse/ASTERISK-28411?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=247119#comment-247119 ] 

PICCORO Lenz McKAY edited comment on ASTERISK-28411 at 5/9/19 10:31 AM:
------------------------------------------------------------------------

IMPORTANT: only happened at 64bit .. 32bit compiles good!

options (hre are the x86 i386 that compiles good, the only change respect 64bit are the lib path): 

{code}
./configure			\
[  398s] 	CFLAGS="-fgnu89-inline -g -O2 -fPIE -fstack-protector-strong -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2" LDFLAGS="-fPIE -pie -Wl,-z,relro -Wl,-z,now -Wl,--as-needed" \
[  398s] 	--host=i586-linux-gnu		\
[  398s] 	--build=i586-linux-gnu		\
[  398s] 	--prefix=/usr				\
[  398s] 	--disable-asteriskssl			\
[  398s] 	--with-gsm				\
[  398s] 	--with-imap=system	
[  398s] checking build system type... i586-pc-linux-gnu
[  398s] checking host system type... i586-pc-linux-gnu
[  398s] checking for i586-linux-gnu-gcc... i586-linux-gnu-gcc
[  398s] checking whether the C compiler works... yes
[  398s] checking for C compiler default output file name... a.out
[  398s] checking for suffix of executables... 
[  398s] checking whether we are cross compiling... no
[  398s] checking for suffix of object files... o
[  398s] checking whether we are using the GNU C compiler... yes
[  398s] checking whether i586-linux-gnu-gcc accepts -g... yes
[  399s] checking for i586-linux-gnu-gcc option to accept ISO C89... none needed
[  399s] checking how to run the C preprocessor... i586-linux-gnu-gcc -E
[  399s] checking for grep that handles long lines and -e... /bin/grep
[  399s] checking for egrep... /bin/grep -E
[  399s] checking for ANSI C header files... yes
[  399s] checking for sys/types.h... yes
[  399s] checking for sys/stat.h... yes
[  399s] checking for stdlib.h... yes
[  399s] checking for string.h... yes
[  399s] checking for memory.h... yes
[  399s] checking for strings.h... yes
[  399s] checking for inttypes.h... yes
[  399s] checking for stdint.h... yes
[  399s] checking for unistd.h... yes
[  400s] checking minix/config.h usability... no
[  400s] checking minix/config.h presence... no
[  400s] checking for minix/config.h... no
[  400s] checking whether it is safe to define __EXTENSIONS__... yes
[  400s] checking whether char is unsigned... no
[  400s] checking for i586-linux-gnu-uname... no
[  400s] checking for uname... /bin/uname
[  400s] checking for i586-linux-gnu-g++... i586-linux-gnu-g++
[  400s] checking whether we are using the GNU C++ compiler... yes
[  400s] checking whether i586-linux-gnu-g++ accepts -g... yes
[  400s] checking how to run the C preprocessor... i586-linux-gnu-gcc -E
[  400s] checking how to run the C++ preprocessor... i586-linux-gnu-g++ -E
[  400s] checking for a sed that does not truncate output... /bin/sed
[  400s] checking for egrep... grep -E
[  400s] checking for ld used by i586-linux-gnu-gcc... /usr/bin/ld
[  400s] checking if the linker (/usr/bin/ld) is GNU ld... yes
......... .... ....
[  400s] checking for clang strsep/strcmp optimization... no
[  400s] checking for embedded pjproject (may have to download)... configuring
[  401s] [pjproject]  Verifying /tmp/pjproject-2.8.tar.bz2
[  401s] [pjproject]  Verify successful
[  401s] [pjproject]  Unpacking /tmp/pjproject-2.8.tar.bz2
[  403s] [pjproject]  Applying patches /usr/src/packages/BUILD/third-party/pjproject/patches /usr/src/packages/BUILD/third-party/pjproject/source
[  404s] [pjproject]  Applying user.mak
[  404s] [pjproject]  Applying custom include file patches/config_site.h
[  404s] [pjproject]  Applying custom include file patches/asterisk_malloc_debug.h
[  404s] [pjproject]  Rebuilding
[  404s] [pjproject]  Configuring with --build=i586-linux-gnu --host=i586-linux-gnu --prefix=/opt/pjproject --disable-speex-codec --disable-speex-aec --disable-bcg729 --disable-gsm-codec --disable-ilbc-codec --disable-l16-codec --disable-g722-codec --disable-g7221-codec --disable-opencore-amr --disable-silk --disable-opus --disable-video --disable-v4l2 --disable-sound --disable-ext-sound --disable-sdl --disable-libyuv --disable-ffmpeg --disable-openh264 --disable-ipp --disable-libwebrtc --without-external-pa --without-external-srtp --disable-resample --disable-g711-codec --enable-epoll
[  412s] checking for bundled pjproject... yes
[  412s] checking for gawk... (cached) gawk
[  412s] checking for curl-config... /usr/bin/curl-config
[  412s] checking for the version of libcurl... 7.38.0
[  412s] checking for libcurl >= version 7.10.1... yes
[  412s] checking whether libcurl is usable... yes
... here all said "yes" ....
[  416s] checking stddef.h usability... yes
[  416s] checking stddef.h presence... yes
[  416s] checking for stddef.h... yes
[  416s] checking for strings.h... (cached) yes
[  416s] checking sys/event.h usability... no
[  416s] checking sys/event.h presence... no
[  416s] checking for sys/event.h... no
[  416s] checking utime.h usability... yes
[  417s] checking utime.h presence... yes
[  417s] checking for utime.h... yes
[  417s] checking for i586-linux-gnu-pkg-config... no
[  417s] checking for pkg-config... /usr/bin/pkg-config
[  417s] checking pkg-config is at least version 0.9.0... yes
[  417s] checking for LIBEDIT... yes
[  417s] checking for Testing for libedit unicode support... no
[  417s] checking for uuid_generate_random in -luuid... yes
[  417s] checking uuid/uuid.h usability... yes
[  417s] checking uuid/uuid.h presence... yes
[  417s] checking for uuid/uuid.h... yes
[  417s] checking for JANSSON... yes
[  417s] checking for clock_gettime in -lrt... yes
[  417s] checking for i586-linux-gnu-xml2-config... no
[  417s] checking for xml2-config... /usr/bin/xml2-config
[  417s] checking for uriParseUriA in -luriparser... yes
[  417s] checking uriparser/Uri.h usability... yes
[  417s] checking uriparser/Uri.h presence... yes
[  417s] checking for uriparser/Uri.h... yes
[  417s] checking for xsltLoadStylesheetPI in -lxslt... yes
[  417s] checking libxslt/xsltInternals.h usability... yes
[  417s] checking libxslt/xsltInternals.h presence... yes
[  417s] checking for libxslt/xsltInternals.h... yes
[  418s] checking for xsltCleanupGlobals in -lxslt... yes
[  418s] checking for libxslt/xsltInternals.h... (cached) yes
[  418s] checking xlocale.h usability... yes
[  418s] checking xlocale.h presence... yes
[  418s] checking for xlocale.h... yes
[  418s] checking winsock.h usability... no
[  418s] checking winsock.h presence... no
[  418s] checking for winsock.h... no
[  418s] checking winsock2.h usability... no
[  418s] checking winsock2.h presence... no
[  418s] checking for winsock2.h... no
[  418s] checking sys/poll.h usability... yes
[  418s] checking sys/poll.h presence... yes
[  418s] checking for sys/poll.h... yes
[  418s] checking for special C compiler options needed for large files... no
[  418s] checking for _FILE_OFFSET_BITS value needed for large files... 64
[  418s] checking for stdbool.h that conforms to C99... yes
[  418s] checking for _Bool... yes
[  419s] checking for an ANSI C-conforming const... yes
[  419s] checking for uid_t in sys/types.h... yes
[  419s] checking for inline... inline
[  419s] checking for long double with more range or precision than double... yes
[  419s] checking for mode_t... yes
[  419s] checking for off_t... yes
[  419s] checking for pid_t... yes
[  419s] checking for size_t... (cached) yes
[  419s] checking for struct stat.st_blksize... yes
[  419s] checking for struct ucred.uid... yes
[  419s] checking for struct ucred.cr_uid... no
[  419s] checking for struct sockpeercred.uid... no
[  419s] checking for struct ifreq.ifr_ifru.ifru_hwaddr... yes
[  419s] checking whether time.h and sys/time.h may both be included... yes
[  420s] checking whether struct tm is in sys/time.h or time.h... time.h
[  420s] checking for working volatile... yes
[  420s] checking for ptrdiff_t... yes
[  420s] checking for struct stat.st_mtim... yes
[  420s] checking for struct stat.st_mtimensec... no
[  420s] checking for struct stat.st_mtimespec... no
[  420s] checking for unistd.h... (cached) yes
[  420s] checking for working chown... yes
[  420s] checking whether closedir returns void... no
[  420s] checking for error_at_line... yes
[  420s] checking vfork.h usability... no
[  420s] checking vfork.h presence... no
[  420s] checking for vfork.h... no
[  421s] checking for fork... yes
[  421s] checking for vfork... yes
[  421s] checking for working fork... yes
[  421s] checking for working vfork... (cached) yes
[  421s] checking for _LARGEFILE_SOURCE value needed for large files... no
[  421s] checking whether i586-linux-gnu-gcc needs -traditional... no
[  421s] checking for working memcmp... yes
[  421s] checking for stdlib.h... (cached) yes
[  421s] checking for unistd.h... (cached) yes
[  421s] checking for sys/param.h... (cached) yes
[  421s] checking for utime.h... (cached) yes
[  421s] checking for getpagesize... yes
[  421s] checking for working mmap... yes
[  421s] checking sys/select.h usability... yes
[  421s] checking sys/select.h presence... yes
[  421s] checking for sys/select.h... yes
[  421s] checking for sys/socket.h... (cached) yes
[  421s] checking types of arguments for select... int,fd_set *,struct timeval *
[  422s] checking whether lstat correctly handles trailing slash... yes
[  422s] checking whether stat accepts an empty string... no
[  422s] checking for working strcoll... yes
[  422s] checking for strftime... yes
[  422s] checking for working strnlen... yes
[  422s] checking for working strtod... yes
[  422s] checking whether utime accepts a null argument... yes
[  422s] checking for vprintf... yes
[  422s] checking for _doprnt... no
[  422s] checking for asprintf... yes
[  422s] checking for atexit... yes
[  423s] checking for closefrom... no
... here more and more "yes" ....
[  434s] checking for -fsanitize=address support... yes
[  434s] checking for -fsanitize=thread support... yes
[  434s] checking for -fsanitize=leak support... yes
[  434s] checking for -fsanitize=undefined support... yes
[  434s] checking for -Wdeclaration-after-statement support... yes
[  434s] checking for -Wtrampolines support... yes
[  434s] checking for _FORTIFY_SOURCE support... yes
[  434s] checking for -fno-strict-overflow... yes
[  434s] checking for -Wno-format-truncation... yes
[  434s] checking for -Wno-stringop-truncation... yes
[  434s] checking for -Wshadow... yes
[  434s] checking for -march=native support... yes
... more and more "yes"
[  445s] checking for sqlite_exec in -lsqlite... no
[  445s] checking for sqlite3_open in -lsqlite3... yes
[  445s] checking sqlite3.h usability... yes
[  445s] checking sqlite3.h presence... yes
[  445s] checking for sqlite3.h... yes
[  445s] checking for crypt in -lcrypt... yes
[  445s] checking crypt.h usability... yes
[  445s] checking crypt.h presence... yes
[  445s] checking for crypt.h... yes
[  445s] checking for crypt... no
[  445s] checking for crypt_r in -lcrypt... yes
[  445s] checking for AES_encrypt in -lcrypto... yes
[  445s] checking openssl/aes.h usability... yes
[  445s] checking openssl/aes.h presence... yes
[  445s] checking for openssl/aes.h... yes
[  445s] checking for SSL_connect in -lssl... yes
[  446s] checking openssl/ssl.h usability... yes
[  446s] checking openssl/ssl.h presence... yes
[  446s] checking for openssl/ssl.h... yes
[  446s] checking osp/osp.h usability... no
[  446s] checking osp/osp.h presence... no
[  446s] checking for osp/osp.h... no
[  446s] checking for srtp_init in -lsrtp2... yes
[  446s] checking srtp2/srtp.h usability... yes
[  446s] checking srtp2/srtp.h presence... yes
[  446s] checking for srtp2/srtp.h... yes
[  446s] checking for the ability of -lsrtp2 to be linked in a shared object... yes
[  446s] checking for srtp_crypto_policy_set_aes_cm_256_hmac_sha1_80 in -lsrtp2... yes
[  446s] checking for srtp_crypto_policy_set_aes_cm_192_hmac_sha1_80 in -lsrtp2... no
[  446s] checking for srtp_crypto_policy_set_aes_gcm_128_8_auth in -lsrtp2... no
[  447s] checking for srtp_shutdown in -lsrtp2... yes
[  447s] checking for srtp2/srtp.h... (cached) yes
[  447s] checking for srtp_get_version_string in -lsrtp2... yes
[  447s] checking for srtp2/srtp.h... (cached) yes
[  447s] checking for GMIME... no
[  447s] checking for GMIME... no
[  447s] checking for GMIME... no
[  447s] checking for GMIME... yes
[  447s] checking for malloc in -lhoard... no
[  447s] checking for dbinit in -lsybdb... yes
[  447s] checking sybdb.h usability... yes
[  447s] checking sybdb.h presence... yes
[  447s] checking for sybdb.h... yes
[  447s] checking for tone_zone_find_by_num in -ltonezone... yes
[  447s] checking for tone_zone_find in -ltonezone... yes
[  447s] checking dahdi/tonezone.h usability... yes
[  447s] checking dahdi/tonezone.h presence... yes
[  447s] checking for dahdi/tonezone.h... yes
[  447s] checking for vorbis_info_init in -lvorbis... yes
[  447s] checking vorbis/codec.h usability... yes
[  447s] checking vorbis/codec.h presence... yes
[  447s] checking for vorbis/codec.h... yes
[  447s] checking for OV_CALLBACKS_NOCLOSE declared in vorbis/vorbisfile.h... yes
[  448s] checking for vpb_open in -lvpb... yes
[  448s] checking for compress in -lz... yes
[  448s] checking zlib.h usability... yes
[  448s] checking zlib.h presence... yes
[  448s] checking for zlib.h... yes
[  448s] checking whether ODBC has support for Unicode types... yes
[  448s] checking linux/compiler.h usability... no
[  448s] checking linux/compiler.h presence... no
[  448s] checking for linux/compiler.h... no
[  448s] checking for linux/ixjuser.h... yes
[  448s] checking for MSG_NOSIGNAL in sys/socket.h... yes
[  448s] checking for SO_NOSIGPIPE in sys/socket.h... no
[  448s] checking for i586-linux-gnu-sdl-config... no
[  448s] checking for sdl-config... /usr/bin/sdl-config
[  448s] checking for IMG_Load in -lSDL_image... yes
[  448s] checking SDL_image.h usability... yes
[  448s] checking SDL_image.h presence... yes
[  448s] checking for SDL_image.h... yes
[  449s] checking for sws_getContext in -lavcodec... no
[  449s] checking linux/videodev.h usability... no
[  449s] checking linux/videodev.h presence... no
[  449s] checking for linux/videodev.h... no
[  449s] checking for XOpenDisplay in -lX11... yes
[  449s] checking X11/Xlib.h usability... yes
[  449s] checking X11/Xlib.h presence... yes
[  449s] checking for X11/Xlib.h... yes
[  449s] checking for /sbin/launchd... no
[  449s] checking for GTK2... no
[  449s] checking for SYSTEMD... yes
[  449s] checking for LOG_AUTH in syslog.h... yes
[  449s] checking for LOG_AUTHPRIV in syslog.h... yes
[  449s] checking for LOG_CRON in syslog.h... yes
[  449s] checking for LOG_DAEMON in syslog.h... yes
[  449s] checking for LOG_FTP in syslog.h... yes
[  449s] checking for LOG_KERN in syslog.h... yes
[  449s] checking for LOG_LPR in syslog.h... yes
[  449s] checking for LOG_MAIL in syslog.h... yes
[  449s] checking for LOG_NEWS in syslog.h... yes
[  449s] checking for LOG_SYSLOG in syslog.h... yes
[  449s] checking for LOG_UUCP in syslog.h... yes
[  449s] checking for bridges/bridge_softmix/include/hrirs.h... yes
[  449s] checking for mandatory modules:  PJPROJECT GSM IMAP_TK... ok
[  450s] configure: creating ./config.status
[  450s] config.status: creating build_tools/menuselect-deps
[  450s] config.status: creating makeopts
[  450s] config.status: creating include/asterisk/autoconfig.h
[  450s] configure: WARNING: unrecognized options: --without-pwlib
[  450s] checking build system type... i686-pc-linux-gnu
[  450s] checking host system type... i686-pc-linux-gnu
[  450s] checking for gcc... gcc
[  450s] checking whether the C compiler works... yes
[  450s] checking for C compiler default output file name... a.out
[  450s] checking for suffix of executables... 
[  450s] checking whether we are cross compiling... no
[  450s] checking for suffix of object files... o
[  450s] checking whether we are using the GNU C compiler... yes
[  450s] checking whether gcc accepts -g... yes
[  451s] checking for gcc option to accept ISO C89... none needed
[  451s] checking for GNU make... make
[  451s] checking how to run the C preprocessor... gcc -E
[  451s] checking for grep that handles long lines and -e... /bin/grep
[  451s] checking for egrep... /bin/grep -E
[  451s] checking for ANSI C header files... yes
[  451s] checking for sys/types.h... yes
[  451s] checking for sys/stat.h... yes
[  451s] checking for stdlib.h... yes
[  451s] checking for string.h... yes
[  451s] checking for memory.h... yes
[  451s] checking for strings.h... yes
[  451s] checking for inttypes.h... yes
[  451s] checking for stdint.h... yes
[  451s] checking for unistd.h... yes
[  452s] checking for size_t... yes
[  452s] checking for working alloca.h... yes
[  452s] checking for alloca... yes
[  452s] checking for asprintf... yes
[  452s] checking for getloadavg... yes
[  452s] checking for setenv... yes
[  452s] checking for strcasestr... yes
[  452s] checking for strndup... yes
[  452s] checking for strnlen... yes
[  452s] checking for strsep... yes
[  452s] checking for unsetenv... yes
[  452s] checking for vasprintf... yes
[  452s] checking for newtBell in -lnewt... yes
[  452s] checking newt.h usability... yes
[  452s] checking newt.h presence... yes
[  452s] checking for newt.h... yes
[  453s] checking for initscr in -lncurses... yes
[  453s] checking ncurses.h usability... yes
[  453s] checking ncurses.h presence... yes
[  453s] checking for ncurses.h... yes
[  453s] checking for a sed that does not truncate output... /bin/sed
[  453s] checking for xml2-config... /usr/bin/xml2-config
[  453s] checking for pkg-config... /usr/bin/pkg-config
[  453s] checking pkg-config is at least version 0.9.0... yes
[  453s] checking for GTK2... no
[  453s] configure: creating ./config.status
[  453s] config.status: creating makeopts
[  453s] config.status: creating autoconfig.h
[  453s] configure: Menuselect build configuration successfully completed
[  453s] 
[  453s]                .$$$$$$$$$$$$$$$=..      
[  453s]             .$7$7..          .7$$7:.    
[  453s]           .$$:.                 ,$7.7   
[  453s]         .$7.     7$$$$           .$$77  
[  453s]      ..$$.       $$$$$            .$$$7 
[  453s]     ..7$   .?.   $$$$$   .?.       7$$$.
[  453s]    $.$.   .$$$7. $$$$7 .7$$$.      .$$$.
[  453s]  .777.   .$$$$$$77$$$77$$$$$7.      $$$,
[  453s]  $$$~      .7$$$$$$$$$$$$$7.       .$$$.
[  453s] .$$7          .7$$$$$$$7:          ?$$$.
[  453s] $$$          ?7$$$$$$$$$$I        .$$$7 
[  453s] $$$       .7$$$$$$$$$$$$$$$$      :$$$. 
[  453s] $$$       $$$$$$7$$$$$$$$$$$$    .$$$.  
[  453s] $$$        $$$   7$$$7  .$$$    .$$$.   
[  453s] $$$$             $$$$7         .$$$.    
[  453s] 7$$$7            7$$$$        7$$$      
[  453s]  $$$$$                        $$$       
[  453s]   $$$$7.                       $$  (TM)     
[  453s]    $$$$$$$.           .7$$$$$$  $$      
[  453s]      $$$$$$$$$$$$7$$$$$$$$$.$$$$$$      
[  453s]        $$$$$$$$$$$$$$$$.                
[  453s] 
[  453s] configure: Package configured for: 
[  453s] configure: OS type  : linux-gnu
[  453s] configure: Host CPU : i586
[  453s] configure: build-cpu:vendor:os: i586 : pc : linux-gnu :
[  453s] configure: host-cpu:vendor:os: i586 : pc : linux-gnu :
{code}

NOW make :

{code}
[  453s] make[1]: Entering directory '/usr/src/packages/BUILD'
[  454s] /usr/bin/make menuselect.makeopts BUILD_CFLAGS="-g -O2 -fPIE -fstack-protector-strong -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2" BUILD_LDFLAGS="-fPIE -pie -Wl,-z,relro -Wl,-z,now"
[  454s] make[2]: Entering directory '/usr/src/packages/BUILD'
[  455s] CC="cc" CXX="i586-linux-gnu-g++" LD="" AR="" RANLIB="" CFLAGS="-g -O2 -fPIE -fstack-protector-strong -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2" LDFLAGS="-fPIE -pie -Wl,-z,relro -Wl,-z,now" make -C menuselect CONFIGURE_SILENT="--silent" menuselect
{code}


was (Author: mckaygerhard):
IMPORTANT: only happened at 64bit .. 32bit compiles good!

options: 

{code}
./configure			\
[  398s] 	CFLAGS="-fgnu89-inline -g -O2 -fPIE -fstack-protector-strong -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2" LDFLAGS="-fPIE -pie -Wl,-z,relro -Wl,-z,now -Wl,--as-needed" \
[  398s] 	--host=i586-linux-gnu		\
[  398s] 	--build=i586-linux-gnu		\
[  398s] 	--prefix=/usr				\
[  398s] 	--disable-asteriskssl			\
[  398s] 	--with-gsm				\
[  398s] 	--with-imap=system	
[  398s] checking build system type... i586-pc-linux-gnu
[  398s] checking host system type... i586-pc-linux-gnu
[  398s] checking for i586-linux-gnu-gcc... i586-linux-gnu-gcc
[  398s] checking whether the C compiler works... yes
[  398s] checking for C compiler default output file name... a.out
[  398s] checking for suffix of executables... 
[  398s] checking whether we are cross compiling... no
[  398s] checking for suffix of object files... o
[  398s] checking whether we are using the GNU C compiler... yes
[  398s] checking whether i586-linux-gnu-gcc accepts -g... yes
[  399s] checking for i586-linux-gnu-gcc option to accept ISO C89... none needed
[  399s] checking how to run the C preprocessor... i586-linux-gnu-gcc -E
[  399s] checking for grep that handles long lines and -e... /bin/grep
[  399s] checking for egrep... /bin/grep -E
[  399s] checking for ANSI C header files... yes
[  399s] checking for sys/types.h... yes
[  399s] checking for sys/stat.h... yes
[  399s] checking for stdlib.h... yes
[  399s] checking for string.h... yes
[  399s] checking for memory.h... yes
[  399s] checking for strings.h... yes
[  399s] checking for inttypes.h... yes
[  399s] checking for stdint.h... yes
[  399s] checking for unistd.h... yes
[  400s] checking minix/config.h usability... no
[  400s] checking minix/config.h presence... no
[  400s] checking for minix/config.h... no
[  400s] checking whether it is safe to define __EXTENSIONS__... yes
[  400s] checking whether char is unsigned... no
[  400s] checking for i586-linux-gnu-uname... no
[  400s] checking for uname... /bin/uname
[  400s] checking for i586-linux-gnu-g++... i586-linux-gnu-g++
[  400s] checking whether we are using the GNU C++ compiler... yes
[  400s] checking whether i586-linux-gnu-g++ accepts -g... yes
[  400s] checking how to run the C preprocessor... i586-linux-gnu-gcc -E
[  400s] checking how to run the C++ preprocessor... i586-linux-gnu-g++ -E
[  400s] checking for a sed that does not truncate output... /bin/sed
[  400s] checking for egrep... grep -E
[  400s] checking for ld used by i586-linux-gnu-gcc... /usr/bin/ld
[  400s] checking if the linker (/usr/bin/ld) is GNU ld... yes
......... .... ....
[  400s] checking for clang strsep/strcmp optimization... no
[  400s] checking for embedded pjproject (may have to download)... configuring
[  401s] [pjproject]  Verifying /tmp/pjproject-2.8.tar.bz2
[  401s] [pjproject]  Verify successful
[  401s] [pjproject]  Unpacking /tmp/pjproject-2.8.tar.bz2
[  403s] [pjproject]  Applying patches /usr/src/packages/BUILD/third-party/pjproject/patches /usr/src/packages/BUILD/third-party/pjproject/source
[  404s] [pjproject]  Applying user.mak
[  404s] [pjproject]  Applying custom include file patches/config_site.h
[  404s] [pjproject]  Applying custom include file patches/asterisk_malloc_debug.h
[  404s] [pjproject]  Rebuilding
[  404s] [pjproject]  Configuring with --build=i586-linux-gnu --host=i586-linux-gnu --prefix=/opt/pjproject --disable-speex-codec --disable-speex-aec --disable-bcg729 --disable-gsm-codec --disable-ilbc-codec --disable-l16-codec --disable-g722-codec --disable-g7221-codec --disable-opencore-amr --disable-silk --disable-opus --disable-video --disable-v4l2 --disable-sound --disable-ext-sound --disable-sdl --disable-libyuv --disable-ffmpeg --disable-openh264 --disable-ipp --disable-libwebrtc --without-external-pa --without-external-srtp --disable-resample --disable-g711-codec --enable-epoll
[  412s] checking for bundled pjproject... yes
[  412s] checking for gawk... (cached) gawk
[  412s] checking for curl-config... /usr/bin/curl-config
[  412s] checking for the version of libcurl... 7.38.0
[  412s] checking for libcurl >= version 7.10.1... yes
[  412s] checking whether libcurl is usable... yes
... here all said "yes" ....
[  416s] checking stddef.h usability... yes
[  416s] checking stddef.h presence... yes
[  416s] checking for stddef.h... yes
[  416s] checking for strings.h... (cached) yes
[  416s] checking sys/event.h usability... no
[  416s] checking sys/event.h presence... no
[  416s] checking for sys/event.h... no
[  416s] checking utime.h usability... yes
[  417s] checking utime.h presence... yes
[  417s] checking for utime.h... yes
[  417s] checking for i586-linux-gnu-pkg-config... no
[  417s] checking for pkg-config... /usr/bin/pkg-config
[  417s] checking pkg-config is at least version 0.9.0... yes
[  417s] checking for LIBEDIT... yes
[  417s] checking for Testing for libedit unicode support... no
[  417s] checking for uuid_generate_random in -luuid... yes
[  417s] checking uuid/uuid.h usability... yes
[  417s] checking uuid/uuid.h presence... yes
[  417s] checking for uuid/uuid.h... yes
[  417s] checking for JANSSON... yes
[  417s] checking for clock_gettime in -lrt... yes
[  417s] checking for i586-linux-gnu-xml2-config... no
[  417s] checking for xml2-config... /usr/bin/xml2-config
[  417s] checking for uriParseUriA in -luriparser... yes
[  417s] checking uriparser/Uri.h usability... yes
[  417s] checking uriparser/Uri.h presence... yes
[  417s] checking for uriparser/Uri.h... yes
[  417s] checking for xsltLoadStylesheetPI in -lxslt... yes
[  417s] checking libxslt/xsltInternals.h usability... yes
[  417s] checking libxslt/xsltInternals.h presence... yes
[  417s] checking for libxslt/xsltInternals.h... yes
[  418s] checking for xsltCleanupGlobals in -lxslt... yes
[  418s] checking for libxslt/xsltInternals.h... (cached) yes
[  418s] checking xlocale.h usability... yes
[  418s] checking xlocale.h presence... yes
[  418s] checking for xlocale.h... yes
[  418s] checking winsock.h usability... no
[  418s] checking winsock.h presence... no
[  418s] checking for winsock.h... no
[  418s] checking winsock2.h usability... no
[  418s] checking winsock2.h presence... no
[  418s] checking for winsock2.h... no
[  418s] checking sys/poll.h usability... yes
[  418s] checking sys/poll.h presence... yes
[  418s] checking for sys/poll.h... yes
[  418s] checking for special C compiler options needed for large files... no
[  418s] checking for _FILE_OFFSET_BITS value needed for large files... 64
[  418s] checking for stdbool.h that conforms to C99... yes
[  418s] checking for _Bool... yes
[  419s] checking for an ANSI C-conforming const... yes
[  419s] checking for uid_t in sys/types.h... yes
[  419s] checking for inline... inline
[  419s] checking for long double with more range or precision than double... yes
[  419s] checking for mode_t... yes
[  419s] checking for off_t... yes
[  419s] checking for pid_t... yes
[  419s] checking for size_t... (cached) yes
[  419s] checking for struct stat.st_blksize... yes
[  419s] checking for struct ucred.uid... yes
[  419s] checking for struct ucred.cr_uid... no
[  419s] checking for struct sockpeercred.uid... no
[  419s] checking for struct ifreq.ifr_ifru.ifru_hwaddr... yes
[  419s] checking whether time.h and sys/time.h may both be included... yes
[  420s] checking whether struct tm is in sys/time.h or time.h... time.h
[  420s] checking for working volatile... yes
[  420s] checking for ptrdiff_t... yes
[  420s] checking for struct stat.st_mtim... yes
[  420s] checking for struct stat.st_mtimensec... no
[  420s] checking for struct stat.st_mtimespec... no
[  420s] checking for unistd.h... (cached) yes
[  420s] checking for working chown... yes
[  420s] checking whether closedir returns void... no
[  420s] checking for error_at_line... yes
[  420s] checking vfork.h usability... no
[  420s] checking vfork.h presence... no
[  420s] checking for vfork.h... no
[  421s] checking for fork... yes
[  421s] checking for vfork... yes
[  421s] checking for working fork... yes
[  421s] checking for working vfork... (cached) yes
[  421s] checking for _LARGEFILE_SOURCE value needed for large files... no
[  421s] checking whether i586-linux-gnu-gcc needs -traditional... no
[  421s] checking for working memcmp... yes
[  421s] checking for stdlib.h... (cached) yes
[  421s] checking for unistd.h... (cached) yes
[  421s] checking for sys/param.h... (cached) yes
[  421s] checking for utime.h... (cached) yes
[  421s] checking for getpagesize... yes
[  421s] checking for working mmap... yes
[  421s] checking sys/select.h usability... yes
[  421s] checking sys/select.h presence... yes
[  421s] checking for sys/select.h... yes
[  421s] checking for sys/socket.h... (cached) yes
[  421s] checking types of arguments for select... int,fd_set *,struct timeval *
[  422s] checking whether lstat correctly handles trailing slash... yes
[  422s] checking whether stat accepts an empty string... no
[  422s] checking for working strcoll... yes
[  422s] checking for strftime... yes
[  422s] checking for working strnlen... yes
[  422s] checking for working strtod... yes
[  422s] checking whether utime accepts a null argument... yes
[  422s] checking for vprintf... yes
[  422s] checking for _doprnt... no
[  422s] checking for asprintf... yes
[  422s] checking for atexit... yes
[  423s] checking for closefrom... no
... here more and more "yes" ....
[  434s] checking for -fsanitize=address support... yes
[  434s] checking for -fsanitize=thread support... yes
[  434s] checking for -fsanitize=leak support... yes
[  434s] checking for -fsanitize=undefined support... yes
[  434s] checking for -Wdeclaration-after-statement support... yes
[  434s] checking for -Wtrampolines support... yes
[  434s] checking for _FORTIFY_SOURCE support... yes
[  434s] checking for -fno-strict-overflow... yes
[  434s] checking for -Wno-format-truncation... yes
[  434s] checking for -Wno-stringop-truncation... yes
[  434s] checking for -Wshadow... yes
[  434s] checking for -march=native support... yes
... more and more "yes"
[  445s] checking for sqlite_exec in -lsqlite... no
[  445s] checking for sqlite3_open in -lsqlite3... yes
[  445s] checking sqlite3.h usability... yes
[  445s] checking sqlite3.h presence... yes
[  445s] checking for sqlite3.h... yes
[  445s] checking for crypt in -lcrypt... yes
[  445s] checking crypt.h usability... yes
[  445s] checking crypt.h presence... yes
[  445s] checking for crypt.h... yes
[  445s] checking for crypt... no
[  445s] checking for crypt_r in -lcrypt... yes
[  445s] checking for AES_encrypt in -lcrypto... yes
[  445s] checking openssl/aes.h usability... yes
[  445s] checking openssl/aes.h presence... yes
[  445s] checking for openssl/aes.h... yes
[  445s] checking for SSL_connect in -lssl... yes
[  446s] checking openssl/ssl.h usability... yes
[  446s] checking openssl/ssl.h presence... yes
[  446s] checking for openssl/ssl.h... yes
[  446s] checking osp/osp.h usability... no
[  446s] checking osp/osp.h presence... no
[  446s] checking for osp/osp.h... no
[  446s] checking for srtp_init in -lsrtp2... yes
[  446s] checking srtp2/srtp.h usability... yes
[  446s] checking srtp2/srtp.h presence... yes
[  446s] checking for srtp2/srtp.h... yes
[  446s] checking for the ability of -lsrtp2 to be linked in a shared object... yes
[  446s] checking for srtp_crypto_policy_set_aes_cm_256_hmac_sha1_80 in -lsrtp2... yes
[  446s] checking for srtp_crypto_policy_set_aes_cm_192_hmac_sha1_80 in -lsrtp2... no
[  446s] checking for srtp_crypto_policy_set_aes_gcm_128_8_auth in -lsrtp2... no
[  447s] checking for srtp_shutdown in -lsrtp2... yes
[  447s] checking for srtp2/srtp.h... (cached) yes
[  447s] checking for srtp_get_version_string in -lsrtp2... yes
[  447s] checking for srtp2/srtp.h... (cached) yes
[  447s] checking for GMIME... no
[  447s] checking for GMIME... no
[  447s] checking for GMIME... no
[  447s] checking for GMIME... yes
[  447s] checking for malloc in -lhoard... no
[  447s] checking for dbinit in -lsybdb... yes
[  447s] checking sybdb.h usability... yes
[  447s] checking sybdb.h presence... yes
[  447s] checking for sybdb.h... yes
[  447s] checking for tone_zone_find_by_num in -ltonezone... yes
[  447s] checking for tone_zone_find in -ltonezone... yes
[  447s] checking dahdi/tonezone.h usability... yes
[  447s] checking dahdi/tonezone.h presence... yes
[  447s] checking for dahdi/tonezone.h... yes
[  447s] checking for vorbis_info_init in -lvorbis... yes
[  447s] checking vorbis/codec.h usability... yes
[  447s] checking vorbis/codec.h presence... yes
[  447s] checking for vorbis/codec.h... yes
[  447s] checking for OV_CALLBACKS_NOCLOSE declared in vorbis/vorbisfile.h... yes
[  448s] checking for vpb_open in -lvpb... yes
[  448s] checking for compress in -lz... yes
[  448s] checking zlib.h usability... yes
[  448s] checking zlib.h presence... yes
[  448s] checking for zlib.h... yes
[  448s] checking whether ODBC has support for Unicode types... yes
[  448s] checking linux/compiler.h usability... no
[  448s] checking linux/compiler.h presence... no
[  448s] checking for linux/compiler.h... no
[  448s] checking for linux/ixjuser.h... yes
[  448s] checking for MSG_NOSIGNAL in sys/socket.h... yes
[  448s] checking for SO_NOSIGPIPE in sys/socket.h... no
[  448s] checking for i586-linux-gnu-sdl-config... no
[  448s] checking for sdl-config... /usr/bin/sdl-config
[  448s] checking for IMG_Load in -lSDL_image... yes
[  448s] checking SDL_image.h usability... yes
[  448s] checking SDL_image.h presence... yes
[  448s] checking for SDL_image.h... yes
[  449s] checking for sws_getContext in -lavcodec... no
[  449s] checking linux/videodev.h usability... no
[  449s] checking linux/videodev.h presence... no
[  449s] checking for linux/videodev.h... no
[  449s] checking for XOpenDisplay in -lX11... yes
[  449s] checking X11/Xlib.h usability... yes
[  449s] checking X11/Xlib.h presence... yes
[  449s] checking for X11/Xlib.h... yes
[  449s] checking for /sbin/launchd... no
[  449s] checking for GTK2... no
[  449s] checking for SYSTEMD... yes
[  449s] checking for LOG_AUTH in syslog.h... yes
[  449s] checking for LOG_AUTHPRIV in syslog.h... yes
[  449s] checking for LOG_CRON in syslog.h... yes
[  449s] checking for LOG_DAEMON in syslog.h... yes
[  449s] checking for LOG_FTP in syslog.h... yes
[  449s] checking for LOG_KERN in syslog.h... yes
[  449s] checking for LOG_LPR in syslog.h... yes
[  449s] checking for LOG_MAIL in syslog.h... yes
[  449s] checking for LOG_NEWS in syslog.h... yes
[  449s] checking for LOG_SYSLOG in syslog.h... yes
[  449s] checking for LOG_UUCP in syslog.h... yes
[  449s] checking for bridges/bridge_softmix/include/hrirs.h... yes
[  449s] checking for mandatory modules:  PJPROJECT GSM IMAP_TK... ok
[  450s] configure: creating ./config.status
[  450s] config.status: creating build_tools/menuselect-deps
[  450s] config.status: creating makeopts
[  450s] config.status: creating include/asterisk/autoconfig.h
[  450s] configure: WARNING: unrecognized options: --without-pwlib
[  450s] checking build system type... i686-pc-linux-gnu
[  450s] checking host system type... i686-pc-linux-gnu
[  450s] checking for gcc... gcc
[  450s] checking whether the C compiler works... yes
[  450s] checking for C compiler default output file name... a.out
[  450s] checking for suffix of executables... 
[  450s] checking whether we are cross compiling... no
[  450s] checking for suffix of object files... o
[  450s] checking whether we are using the GNU C compiler... yes
[  450s] checking whether gcc accepts -g... yes
[  451s] checking for gcc option to accept ISO C89... none needed
[  451s] checking for GNU make... make
[  451s] checking how to run the C preprocessor... gcc -E
[  451s] checking for grep that handles long lines and -e... /bin/grep
[  451s] checking for egrep... /bin/grep -E
[  451s] checking for ANSI C header files... yes
[  451s] checking for sys/types.h... yes
[  451s] checking for sys/stat.h... yes
[  451s] checking for stdlib.h... yes
[  451s] checking for string.h... yes
[  451s] checking for memory.h... yes
[  451s] checking for strings.h... yes
[  451s] checking for inttypes.h... yes
[  451s] checking for stdint.h... yes
[  451s] checking for unistd.h... yes
[  452s] checking for size_t... yes
[  452s] checking for working alloca.h... yes
[  452s] checking for alloca... yes
[  452s] checking for asprintf... yes
[  452s] checking for getloadavg... yes
[  452s] checking for setenv... yes
[  452s] checking for strcasestr... yes
[  452s] checking for strndup... yes
[  452s] checking for strnlen... yes
[  452s] checking for strsep... yes
[  452s] checking for unsetenv... yes
[  452s] checking for vasprintf... yes
[  452s] checking for newtBell in -lnewt... yes
[  452s] checking newt.h usability... yes
[  452s] checking newt.h presence... yes
[  452s] checking for newt.h... yes
[  453s] checking for initscr in -lncurses... yes
[  453s] checking ncurses.h usability... yes
[  453s] checking ncurses.h presence... yes
[  453s] checking for ncurses.h... yes
[  453s] checking for a sed that does not truncate output... /bin/sed
[  453s] checking for xml2-config... /usr/bin/xml2-config
[  453s] checking for pkg-config... /usr/bin/pkg-config
[  453s] checking pkg-config is at least version 0.9.0... yes
[  453s] checking for GTK2... no
[  453s] configure: creating ./config.status
[  453s] config.status: creating makeopts
[  453s] config.status: creating autoconfig.h
[  453s] configure: Menuselect build configuration successfully completed
[  453s] 
[  453s]                .$$$$$$$$$$$$$$$=..      
[  453s]             .$7$7..          .7$$7:.    
[  453s]           .$$:.                 ,$7.7   
[  453s]         .$7.     7$$$$           .$$77  
[  453s]      ..$$.       $$$$$            .$$$7 
[  453s]     ..7$   .?.   $$$$$   .?.       7$$$.
[  453s]    $.$.   .$$$7. $$$$7 .7$$$.      .$$$.
[  453s]  .777.   .$$$$$$77$$$77$$$$$7.      $$$,
[  453s]  $$$~      .7$$$$$$$$$$$$$7.       .$$$.
[  453s] .$$7          .7$$$$$$$7:          ?$$$.
[  453s] $$$          ?7$$$$$$$$$$I        .$$$7 
[  453s] $$$       .7$$$$$$$$$$$$$$$$      :$$$. 
[  453s] $$$       $$$$$$7$$$$$$$$$$$$    .$$$.  
[  453s] $$$        $$$   7$$$7  .$$$    .$$$.   
[  453s] $$$$             $$$$7         .$$$.    
[  453s] 7$$$7            7$$$$        7$$$      
[  453s]  $$$$$                        $$$       
[  453s]   $$$$7.                       $$  (TM)     
[  453s]    $$$$$$$.           .7$$$$$$  $$      
[  453s]      $$$$$$$$$$$$7$$$$$$$$$.$$$$$$      
[  453s]        $$$$$$$$$$$$$$$$.                
[  453s] 
[  453s] configure: Package configured for: 
[  453s] configure: OS type  : linux-gnu
[  453s] configure: Host CPU : i586
[  453s] configure: build-cpu:vendor:os: i586 : pc : linux-gnu :
[  453s] configure: host-cpu:vendor:os: i586 : pc : linux-gnu :
{code}

NOW make :

{code}
[  453s] make[1]: Entering directory '/usr/src/packages/BUILD'
[  454s] /usr/bin/make menuselect.makeopts BUILD_CFLAGS="-g -O2 -fPIE -fstack-protector-strong -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2" BUILD_LDFLAGS="-fPIE -pie -Wl,-z,relro -Wl,-z,now"
[  454s] make[2]: Entering directory '/usr/src/packages/BUILD'
[  455s] CC="cc" CXX="i586-linux-gnu-g++" LD="" AR="" RANLIB="" CFLAGS="-g -O2 -fPIE -fstack-protector-strong -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2" LDFLAGS="-fPIE -pie -Wl,-z,relro -Wl,-z,now" make -C menuselect CONFIGURE_SILENT="--silent" menuselect
{code}

> Build link error bundled pjproject : relocation against symbol cant be used when shared object
> ----------------------------------------------------------------------------------------------
>
>                 Key: ASTERISK-28411
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-28411
>             Project: Asterisk
>          Issue Type: Bug
>      Security Level: None
>          Components: Channels/chan_pjsip, Third-Party/pjproject
>    Affects Versions: 16.0.0, 16.1.0, 16.1.1, 16.2.0, 16.2.1
>         Environment: OS: Debian in Proliant MX110GT tower
> GCC: 6 (also tried with gcc 4.9 and 4.6, same result) 
> Processor : Xeon 64bit
> RAM: 16G
>            Reporter: PICCORO Lenz McKAY
>            Assignee: Unassigned
>            Severity: Minor
>              Labels: pjsip
>
> After try to compile bundled pjproject got that error:
> `/usr/bin/ld: res_pjsip_session.o: relocation R_X86_64_PC32 against symbol ast_sip_session_media_state_reset can not be used when making a shared object; recompile with -fPIC`
> But i already compiled with PIC as output show, 
> NOTE IMPORTANT: quite stupid do not build agains well updated external pjproject! nonsense!
> {code}
> [  598s] x86_64-linux-gnu-gcc -o res_pjsip_session.o -c res_pjsip_session.c -MD -MT res_pjsip_session.o -MF .res_pjsip_session.o.d -MP -pthread -I/usr/src/packages/BUILD/include -fgnu89-inline -g -O2 -fPIE -fstack-protector-strong -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2   -I/usr/include/libxml2  -pipe -Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations       -fPIC -DAST_MODULE=\"res_pjsip_session\" -DAST_MODULE_SELF_SYM=__internal_res_pjsip_session_self  -DPJ_AUTOCONF=1 -fgnu89-inline -fPIE -fstack-protector-strong -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -DPJ_IS_BIG_ENDIAN=0 -DPJ_IS_LITTLE_ENDIAN=1 -I/usr/src/packages/BUILD/third-party/pjproject/source/pjlib/include -I/usr/src/packages/BUILD/third-party/pjproject/source/pjlib-util/include -I/usr/src/packages/BUILD/third-party/pjproject/source/pjnath/include -I/usr/src/packages/BUILD/third-party/pjproject/source/pjmedia/include -I/usr/src/packages/BUILD/third-party/pjproject/source/pjsip/include  
> [  600s] /usr/src/packages/BUILD/build_tools/make_linker_version_script res_pjsip_session "" "/usr/src/packages/BUILD"
> [  600s] x86_64-linux-gnu-gcc -o res_pjsip_session.so -pthread -fPIE -pie -Wl,-z,relro -Wl,-z,now -Wl,--as-needed    -shared -Wl,--version-script,res_pjsip_session.exports,--warn-common  res_pjsip_session.o  
> [  600s] /usr/bin/ld: res_pjsip_session.o: relocation R_X86_64_PC32 against symbol `ast_sip_session_media_state_reset' can not be used when making a shared object; recompile with -fPIC
> [  600s] /usr/bin/ld: final link failed: Bad value
> [  600s] collect2: error: ld returned 1 exit status
> [  600s] /usr/src/packages/BUILD/Makefile.rules:179: recipe for target 'res_pjsip_session.so' failed
> [  600s] make[3]: *** [res_pjsip_session.so] Error 1
> [  600s] make[3]: Leaving directory '/usr/src/packages/BUILD/res'
> [  600s] Makefile:383: recipe for target 'res' failed
> [  600s] make[2]: *** [res] Error 2
> [  600s] make[2]: Leaving directory '/usr/src/packages/BUILD'
> [  600s] dh_auto_build: make -j1 AST_FORTIFY_SOURCE= DEBUG= OPTIMIZE= NOISY_BUILD=yes ASTDATADIR=/usr/share/asterisk ASTVARRUNDIR=/var/run/asterisk returned exit code 2
> {code}



--
This message was sent by Atlassian JIRA
(v6.2#6252)



More information about the asterisk-bugs mailing list