checking whether g++ can link programs - c++

I received the following error in the logs while I was trying to build glibc:
configure:3180: checking whether g++ can link programs
configure:3203: g++ -o conftest -g -O2 conftest.cpp >&5
configure:3203: $? = 0
configure:3226: g++ -o conftest -g -O2 -static conftest.cpp >&5
/usr/lib64/gcc/x86_64-suse-linux/6/../../../../x86_64-suse-linux/bin/ld: cannot find -lm
/usr/lib64/gcc/x86_64-suse-linux/6/../../../../x86_64-suse-linux/bin/ld: cannot find -lc
collect2: error: ld returned 1 exit status
configure:3226: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "GNU C Library"
| #define PACKAGE_TARNAME "glibc"
| #define PACKAGE_VERSION "(see version.h)"
| #define PACKAGE_STRING "GNU C Library (see version.h)"
| #define PACKAGE_BUGREPORT "http://sourceware.org/bugzilla/"
| #define PACKAGE_URL "http://www.gnu.org/software/glibc/"
| #define PKGVERSION "(GNU libc) "
| #define REPORT_BUGS_TO "<http://www.gnu.org/software/libc/bugs.html>"
| /* end confdefs.h. */
|
| #include <iostream>
|
| int
| main()
| {
| std::cout << "Hello, world!";
| return 0;
| }
|
configure:3241: result: no
configure:3248: error: you must configure in a separate build directory
Any ideas how to fix it?
How to reproduce it:
Download the glibc from here and try to make ./configure.

I think the error itself if is a good hint? It says you should configure in a build directory, so make a directory called build in the top source directory and cd to it then run ../configure.

Related

Error bootstrapping makefile fragments while building libjpeg/9d with Conan

I have been trying for several days to install OpenCV with Conan (on Windows 10). However, the installation is failing on building the libjpeg/9d dependency.
Conan profile:
[settings]
arch=x86_64
arch_build=x86_64
build_type=Debug
compiler=gcc
compiler.libcxx=libstdc++11
compiler.version=8
os=Windows
os_build=Windows
[options]
[build_requires]
[env]
The used command:
conan install .. --profile vslamprofile --build=missing
The part of the logs related to the error:
libjpeg/9d: configure: creating ./config.status
libjpeg/9d: config.status: creating Makefile
libjpeg/9d: config.status: creating libjpeg.pc
libjpeg/9d: config.status: creating jconfig.h
libjpeg/9d: config.status: executing depfiles commands
libjpeg/9d: config.status: error: in /c/users/username/.conan/data/libjpeg/9d/_/_/build/2e90c2fe2f69846019f521f2004427fb191035af':
libjpeg/9d: config.status: error: Something went wrong bootstrapping makefile fragments
libjpeg/9d: for automatic dependency tracking. Try re-running configure with the
libjpeg/9d: '--disable-dependency-tracking' option to at least be able to build
libjpeg/9d: the package (albeit without support for automatic dependency tracking).
libjpeg/9d: See `config.log' for more details
libjpeg/9d: configure: WARNING: cache variable lt_cv_path_LD contains a newline
libjpeg/9d:
libjpeg/9d: ERROR: Package '2e90c2fe2f69846019f521f2004427fb191035af' build failed
libjpeg/9d: WARN: Build folder C:\Users\username\.conan\data\libjpeg\9d\_\_\build\2e90c2fe2f69846019f521f2004427fb191035af
ERROR: libjpeg/9d: Error in build() method, line 100
autotools = self._configure_autotools()
while calling '_configure_autotools', line 88
self._autotools.configure(configure_dir=self._source_subfolder, args=config_args)
ConanException: Error 1 while executing /c/users/username/.conan/data/libjpeg/9d/_/_/build/2e90c2fe2f69846019f521f2004427fb191035af/source_subfolder/configure --prefix=/c/users/username/.conan/data/libjpeg/9d/_/_/package/2e90c2fe2f69846019f521f2004427fb191035af --enable-shared=no --enable-static=yes --build=x86_64-w64-mingw32 --host=x86_64-w64-mingw32
I have found several people with the similar error (not while installing OpenCV though) but I have not managed to find any solution.
## ----------- ##
## Core tests. ##
## ----------- ##
<...>
conftest.c:11:10: fatal error: ac_nonexistent.h: No such file or directory
#include <ac_nonexistent.h>
^~~~~~~~~~~~~~~~~~
compilation terminated.
configure:4415: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "libjpeg"
| #define PACKAGE_TARNAME "libjpeg"
| #define PACKAGE_VERSION "9.4.0"
| #define PACKAGE_STRING "libjpeg 9.4.0"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #define PACKAGE "libjpeg"
| #define VERSION "9.4.0"
| /* end confdefs.h. */
| #include <ac_nonexistent.h>
configure:4440: result: x86_64-w64-mingw32-gcc -E
configure:4460: x86_64-w64-mingw32-gcc -E -DLIBJPEG_BUILDING conftest.c
configure:4460: $? = 0
configure:4474: x86_64-w64-mingw32-gcc -E -DLIBJPEG_BUILDING conftest.c
conftest.c:11:10: fatal error: ac_nonexistent.h: No such file or directory
#include <ac_nonexistent.h>
^~~~~~~~~~~~~~~~~~
compilation terminated.
configure:4474: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "libjpeg"
| #define PACKAGE_TARNAME "libjpeg"
| #define PACKAGE_VERSION "9.4.0"
| #define PACKAGE_STRING "libjpeg 9.4.0"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #define PACKAGE "libjpeg"
| #define VERSION "9.4.0"
| /* end confdefs.h. */
| #include <ac_nonexistent.h>
configure:4503: checking whether make sets $(MAKE)
configure:4525: result: yes
configure:4534: checking whether ln -s works
configure:4541: result: no, using cp -pR
configure:4551: checking for x86_64-w64-mingw32-ar
configure:4581: result: no
configure:4551: checking for x86_64-w64-mingw32-lib
configure:4581: result: no
configure:4551: checking for x86_64-w64-mingw32-link
configure:4581: result: no
configure:4595: checking for ar
configure:4611: found /c/.conan/42de2d/1/bin/usr/bin/ar
configure:4622: result: ar
configure:4648: checking the archiver (ar) interface
configure:4664: x86_64-w64-mingw32-gcc -c -m64 -g -DLIBJPEG_BUILDING conftest.c >&5
configure:4664: $? = 0
configure:4666: ar cru libconftest.a conftest.o >&5
configure:4669: $? = 0
configure:4697: result: ar
configure:4726: checking if LD -Wl,--version-script works
configure:4750: x86_64-w64-mingw32-gcc -o conftest.exe -m64 -g -DLIBJPEG_BUILDING -m64 -Wl,--version-script=conftest.map conftest.c >&5
configure:4750: $? = 0
configure:4759: result: yes
configure:4772: checking for function prototypes
configure:4792: x86_64-w64-mingw32-gcc -c -m64 -g -DLIBJPEG_BUILDING conftest.c >&5
configure:4792: $? = 0
configure:4800: result: yes
configure:4821: checking for grep that handles long lines and -e
configure:4879: result: /c/.conan/42de2d/1/bin/usr/bin/grep
configure:4884: checking for egrep
configure:4946: result: /c/.conan/42de2d/1/bin/usr/bin/grep -E
configure:4951: checking for ANSI C header files
configure:4971: x86_64-w64-mingw32-gcc -c -m64 -g -DLIBJPEG_BUILDING conftest.c >&5
configure:4971: $? = 0
configure:5044: x86_64-w64-mingw32-gcc -o conftest.exe -m64 -g -DLIBJPEG_BUILDING -m64 conftest.c >&5
configure:5044: $? = 0
configure:5044: ./conftest.exe
configure:5044: $? = 0
configure:5055: result: yes
configure:5068: checking for sys/types.h
configure:5068: x86_64-w64-mingw32-gcc -c -m64 -g -DLIBJPEG_BUILDING conftest.c >&5
configure:5068: $? = 0
configure:5068: result: yes
configure:5068: checking for sys/stat.h
configure:5068: x86_64-w64-mingw32-gcc -c -m64 -g -DLIBJPEG_BUILDING conftest.c >&5
configure:5068: $? = 0
configure:5068: result: yes
configure:5068: checking for stdlib.h
configure:5068: x86_64-w64-mingw32-gcc -c -m64 -g -DLIBJPEG_BUILDING conftest.c >&5
configure:5068: $? = 0
configure:5068: result: yes
configure:5068: checking for string.h
configure:5068: x86_64-w64-mingw32-gcc -c -m64 -g -DLIBJPEG_BUILDING conftest.c >&5
configure:5068: $? = 0
configure:5068: result: yes
configure:5068: checking for memory.h
configure:5068: x86_64-w64-mingw32-gcc -c -m64 -g -DLIBJPEG_BUILDING conftest.c >&5
configure:5068: $? = 0
configure:5068: result: yes
configure:5068: checking for strings.h
configure:5068: x86_64-w64-mingw32-gcc -c -m64 -g -DLIBJPEG_BUILDING conftest.c >&5
configure:5068: $? = 0
configure:5068: result: yes
configure:5068: checking for inttypes.h
configure:5068: x86_64-w64-mingw32-gcc -c -m64 -g -DLIBJPEG_BUILDING conftest.c >&5
configure:5068: $? = 0
configure:5068: result: yes
configure:5068: checking for stdint.h
configure:5068: x86_64-w64-mingw32-gcc -c -m64 -g -DLIBJPEG_BUILDING conftest.c >&5
configure:5068: $? = 0
configure:5068: result: yes
configure:5068: checking for unistd.h
configure:5068: x86_64-w64-mingw32-gcc -c -m64 -g -DLIBJPEG_BUILDING conftest.c >&5
configure:5068: $? = 0
configure:5068: result: yes
configure:5083: checking stddef.h usability
configure:5083: x86_64-w64-mingw32-gcc -c -m64 -g -DLIBJPEG_BUILDING conftest.c >&5
configure:5083: $? = 0
configure:5083: result: yes
configure:5083: checking stddef.h presence
configure:5083: x86_64-w64-mingw32-gcc -E -DLIBJPEG_BUILDING conftest.c
configure:5083: $? = 0
configure:5083: result: yes
configure:5083: checking for stddef.h
configure:5083: result: yes
configure:5083: checking for stdlib.h
configure:5083: result: yes
configure:5083: checking locale.h usability
configure:5083: x86_64-w64-mingw32-gcc -c -m64 -g -DLIBJPEG_BUILDING conftest.c >&5
configure:5083: $? = 0
configure:5083: result: yes
configure:5083: checking locale.h presence
configure:5083: x86_64-w64-mingw32-gcc -E -DLIBJPEG_BUILDING conftest.c
configure:5083: $? = 0
configure:5083: result: yes
configure:5083: checking for locale.h
configure:5083: result: yes
configure:5093: checking for string.h
configure:5093: result: yes
configure:5106: checking for size_t
configure:5133: x86_64-w64-mingw32-gcc -c -m64 -g -DLIBJPEG_BUILDING conftest.c >&5
configure:5133: $? = 0
configure:5139: result: yes
configure:5175: checking for type unsigned char
configure:5188: x86_64-w64-mingw32-gcc -c -m64 -g -DLIBJPEG_BUILDING conftest.c >&5
configure:5188: $? = 0
configure:5189: result: yes
configure:5200: checking for type unsigned short
configure:5213: x86_64-w64-mingw32-gcc -c -m64 -g -DLIBJPEG_BUILDING conftest.c >&5
configure:5213: $? = 0
configure:5214: result: yes
configure:5225: checking for type void
configure:5259: x86_64-w64-mingw32-gcc -c -m64 -g -DLIBJPEG_BUILDING conftest.c >&5
configure:5259: $? = 0
configure:5260: result: yes
configure:5270: checking for an ANSI C-conforming const
configure:5336: x86_64-w64-mingw32-gcc -c -m64 -g -DLIBJPEG_BUILDING conftest.c >&5
configure:5336: $? = 0
configure:5343: result: yes
configure:5353: checking for inline
configure:5368: x86_64-w64-mingw32-gcc -c -m64 -g -DLIBJPEG_BUILDING conftest.c >&5
configure:5368: $? = 0
configure:5406: result: __inline__
configure:5415: checking for broken incomplete types
configure:5428: x86_64-w64-mingw32-gcc -c -m64 -g -DLIBJPEG_BUILDING conftest.c >&5
configure:5428: $? = 0
configure:5429: result: ok
configure:5441: checking for short external names
configure:5457: x86_64-w64-mingw32-gcc -o conftest.exe -m64 -g -DLIBJPEG_BUILDING -m64 conftest.c >&5
configure:5457: $? = 0
configure:5458: result: ok
configure:5471: checking to see if char is signed
configure:5508: x86_64-w64-mingw32-gcc -o conftest.exe -m64 -g -DLIBJPEG_BUILDING -m64 conftest.c >&5
configure:5508: $? = 0
configure:5508: ./conftest.exe
configure:5508: $? = 1
configure: program exited with status 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "libjpeg"
| #define PACKAGE_TARNAME "libjpeg"
| #define PACKAGE_VERSION "9.4.0"
| #define PACKAGE_STRING "libjpeg 9.4.0"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #define PACKAGE "libjpeg"
| #define VERSION "9.4.0"
| #define HAVE_PROTOTYPES 1
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_STDDEF_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_LOCALE_H 1
| #define HAVE_UNSIGNED_CHAR 1
| #define HAVE_UNSIGNED_SHORT 1
| #define INLINE __inline__
| /* end confdefs.h. */
|
| #ifdef HAVE_STDLIB_H
| #include <stdlib.h>
| #endif
| #include <stdio.h>
| #ifdef HAVE_PROTOTYPES
| int is_char_signed (int arg)
| #else
| int is_char_signed (arg)
| int arg;
| #endif
| {
| if (arg == 189) { /* expected result for unsigned char */
| return 0; /* type char is unsigned */
| }
| else if (arg != -67) { /* expected result for signed char */
| printf("Hmm, it seems 'char' is not eight bits wide on your machine.\n");
| printf("I fear the JPEG software will not work at all.\n\n");
| }
| return 1; /* assume char is signed otherwise */
| }
| char signed_char_check = (char) (-67);
| int main() {
| exit(is_char_signed((int) signed_char_check));
| }
configure:5515: result: yes
configure:5523: checking to see if right shift is signed
configure:5563: x86_64-w64-mingw32-gcc -o conftest.exe -m64 -g -DLIBJPEG_BUILDING -m64 conftest.c >&5
configure:5563: $? = 0
configure:5563: ./conftest.exe
configure:5563: $? = 1
configure: program exited with status 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "libjpeg"
| #define PACKAGE_TARNAME "libjpeg"
| #define PACKAGE_VERSION "9.4.0"
| #define PACKAGE_STRING "libjpeg 9.4.0"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #define PACKAGE "libjpeg"
| #define VERSION "9.4.0"
| #define HAVE_PROTOTYPES 1
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_STDDEF_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_LOCALE_H 1
| #define HAVE_UNSIGNED_CHAR 1
| #define HAVE_UNSIGNED_SHORT 1
| #define INLINE __inline__
| /* end confdefs.h. */
|
| #ifdef HAVE_STDLIB_H
| #include <stdlib.h>
| #endif
| #include <stdio.h>
| #ifdef HAVE_PROTOTYPES
| int is_shifting_signed (long arg)
| #else
| int is_shifting_signed (arg)
| long arg;
| #endif
| /* See whether right-shift on a long is signed or not. */
| {
| long res = arg >> 4;
|
| if (res == -0x7F7E80CL) { /* expected result for signed shift */
| return 1; /* right shift is signed */
| }
| /* see if unsigned-shift hack will fix it. */
| /* we can't just test exact value since it depends on width of long... */
| res |= (~0L) << (32-4);
| if (res == -0x7F7E80CL) { /* expected result now? */
| return 0; /* right shift is unsigned */
| }
| printf("Right shift isn't acting as I expect it to.\n");
| printf("I fear the JPEG software will not work at all.\n\n");
| return 0; /* try it with unsigned anyway */
| }
| int main() {
| exit(is_shifting_signed(-0x7F7E80B1L));
| }
configure:5570: result: yes
configure:5578: checking to see if fopen accepts b spec
configure:5597: x86_64-w64-mingw32-gcc -o conftest.exe -m64 -g -DLIBJPEG_BUILDING -m64 conftest.c >&5
configure:5597: $? = 0
configure:5597: ./conftest.exe
configure:5597: $? = 0
configure:5598: result: yes
configure:5620: checking for x86_64-w64-mingw32-as
configure:5650: result: no
configure:5660: checking for as
configure:5676: found /c/.conan/42de2d/1/bin/usr/bin/as
configure:5687: result: as
configure:5712: checking for x86_64-w64-mingw32-dlltool
configure:5742: result: no
configure:5752: checking for dlltool
configure:5768: found /c/.conan/42de2d/1/bin/usr/bin/dlltool
configure:5779: result: dlltool
configure:5804: checking for x86_64-w64-mingw32-objdump
configure:5834: result: no
configure:5844: checking for objdump
configure:5860: found /c/.conan/42de2d/1/bin/usr/bin/objdump
configure:5871: result: objdump
configure:5962: checking how to print strings
configure:5989: result: printf
configure:6010: checking for a sed that does not truncate output
configure:6074: result: /c/.conan/42de2d/1/bin/usr/bin/sed
configure:6092: checking for fgrep
configure:6154: result: /c/.conan/42de2d/1/bin/usr/bin/grep -F
configure:6189: checking for ld used by x86_64-w64-mingw32-gcc
configure:6256: result: C:/Program
Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/x86_64-w64-mingw32/bin/ld.exe
configure:6263: checking if the linker (C:/Program
Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/x86_64-w64-mingw32/bin/ld.exe) is GNU ld
configure:6278: result: no
configure:6290: checking for BSD- or MS-compatible name lister (nm)
configure:6344: result: /c/.conan/42de2d/1/bin/usr/bin/nm -B
configure:6474: checking the name lister (/c/.conan/42de2d/1/bin/usr/bin/nm -B) interface
configure:6481: x86_64-w64-mingw32-gcc -c -m64 -g -DLIBJPEG_BUILDING conftest.c >&5
configure:6484: /c/.conan/42de2d/1/bin/usr/bin/nm -B "conftest.o"
configure:6487: output
0000000000000000 b .bss
0000000000000000 d .data
0000000000000000 N .debug_abbrev
0000000000000000 N .debug_aranges
0000000000000000 N .debug_info
0000000000000000 N .debug_line
0000000000000000 r .rdata$zzz
0000000000000000 t .text
0000000000000000 B some_variable
configure:6494: result: BSD nm
configure:6498: checking the maximum length of command line arguments
configure:6629: result: 8192
configure:6677: checking how to convert x86_64-w64-mingw32 file names to x86_64-w64-mingw32 format
configure:6717: result: func_convert_file_msys_to_w32
configure:6724: checking how to convert x86_64-w64-mingw32 file names to toolchain format
configure:6744: result: func_convert_file_msys_to_w32
configure:6751: checking for C:/Program
Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/x86_64-w64-mingw32/bin/ld.exe option to reload object files
configure:6758: result: -r
configure:6792: checking for x86_64-w64-mingw32-objdump
configure:6819: result: objdump
configure:6888: checking how to recognize dependent libraries
configure:7088: result: file_magic ^x86 archive import|^x86 DLL
configure:7133: checking for x86_64-w64-mingw32-dlltool
configure:7160: result: dlltool
configure:7230: checking how to associate runtime and link libraries
configure:7257: result: func_cygming_dll_for_implib
configure:7273: checking for x86_64-w64-mingw32-ar
configure:7300: result: ar
configure:7381: checking for archiver #FILE support
configure:7398: x86_64-w64-mingw32-gcc -c -m64 -g -DLIBJPEG_BUILDING conftest.c >&5
configure:7398: $? = 0
configure:7401: ar cru libconftest.a #conftest.lst >&5
configure:7404: $? = 0
configure:7409: ar cru libconftest.a #conftest.lst >&5
ar: conftest.o: No such file or directory
configure:7412: $? = 1
configure:7424: result: #
configure:7442: checking for x86_64-w64-mingw32-strip
configure:7472: result: no
configure:7482: checking for strip
configure:7498: found /c/.conan/42de2d/1/bin/usr/bin/strip
configure:7509: result: strip
configure:7541: checking for x86_64-w64-mingw32-ranlib
configure:7571: result: no
configure:7581: checking for ranlib
configure:7597: found /c/.conan/42de2d/1/bin/usr/bin/ranlib
configure:7608: result: ranlib
configure:7710: checking command to parse /c/.conan/42de2d/1/bin/usr/bin/nm -B output from x86_64-w64-mingw32-gcc object
configure:7863: x86_64-w64-mingw32-gcc -c -m64 -g -DLIBJPEG_BUILDING conftest.c >&5
configure:7866: $? = 0
configure:7870: /c/.conan/42de2d/1/bin/usr/bin/nm -B conftest.o \| sed -n -e 's/^.*[ ]\([ABCDGIRSTW][ABCDGIRSTW]*\)[ ][ ]*\([_A-Za-z][_A-Za-z0-9]*\)\{0,1\}$/\1 \2 \2/p' | sed '/ __gnu_lto/d' \> conftest.nm
configure:7873: $? = 0
configure:7939: x86_64-w64-mingw32-gcc -o conftest.exe -m64 -g -DLIBJPEG_BUILDING -m64 conftest.c conftstm.o >&5
configure:7942: $? = 0
configure:7980: result: ok
configure:8027: checking for sysroot
configure:8057: result: no
configure:8064: checking for a working dd
configure:8102: result: /c/.conan/42de2d/1/bin/usr/bin/dd
configure:8106: checking how to truncate binary pipes
configure:8121: result: /c/.conan/42de2d/1/bin/usr/bin/dd bs=4096 count=1
configure:8410: checking for x86_64-w64-mingw32-mt
configure:8440: result: no
configure:8450: checking for mt
configure:8480: result: no
configure:8500: checking if : is a manifest tool
configure:8506: : '-?'
configure:8514: result: no
configure:9188: checking for dlfcn.h
configure:9188: x86_64-w64-mingw32-gcc -c -m64 -g -DLIBJPEG_BUILDING conftest.c >&5
conftest.c:62:10: fatal error: dlfcn.h: No such file or directory
#include <dlfcn.h>
^~~~~~~~~
compilation terminated.
configure:9188: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "libjpeg"
| #define PACKAGE_TARNAME "libjpeg"
| #define PACKAGE_VERSION "9.4.0"
| #define PACKAGE_STRING "libjpeg 9.4.0"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #define PACKAGE "libjpeg"
| #define VERSION "9.4.0"
| #define HAVE_PROTOTYPES 1
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_STDDEF_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_LOCALE_H 1
| #define HAVE_UNSIGNED_CHAR 1
| #define HAVE_UNSIGNED_SHORT 1
| #define INLINE __inline__
| /* end confdefs.h. */
| #include <stdio.h>
| #ifdef HAVE_SYS_TYPES_H
| # include <sys/types.h>
| #endif
| #ifdef HAVE_SYS_STAT_H
| # include <sys/stat.h>
| #endif
| #ifdef STDC_HEADERS
| # include <stdlib.h>
| # include <stddef.h>
| #else
| # ifdef HAVE_STDLIB_H
| # include <stdlib.h>
| # endif
| #endif
| #ifdef HAVE_STRING_H
| # if !defined STDC_HEADERS && defined HAVE_MEMORY_H
| # include <memory.h>
| # endif
| # include <string.h>
| #endif
| #ifdef HAVE_STRINGS_H
| # include <strings.h>
| #endif
| #ifdef HAVE_INTTYPES_H
| # include <inttypes.h>
| #endif
| #ifdef HAVE_STDINT_H
| # include <stdint.h>
| #endif
| #ifdef HAVE_UNISTD_H
| # include <unistd.h>
| #endif
|
| #include <dlfcn.h>
configure:9188: result: no
configure:9442: checking for objdir
configure:9457: result: .libs
configure:9717: checking if x86_64-w64-mingw32-gcc supports -fno-rtti -fno-exceptions
configure:9735: x86_64-w64-mingw32-gcc -c -m64 -g -DLIBJPEG_BUILDING -fno-rtti -fno-exceptions conftest.c >&5
cc1.exe: warning: command line option '-fno-rtti' is valid for C++/ObjC++ but not for C
configure:9739: $? = 0
configure:9752: result: no
configure:10110: checking for x86_64-w64-mingw32-gcc option to produce PIC
configure:10117: result: -DDLL_EXPORT -DPIC
configure:10125: checking if x86_64-w64-mingw32-gcc PIC flag -DDLL_EXPORT -DPIC works
configure:10143: x86_64-w64-mingw32-gcc -c -m64 -g -DLIBJPEG_BUILDING -DDLL_EXPORT -DPIC -DPIC conftest.c >&5
configure:10147: $? = 0
configure:10160: result: yes
configure:10189: checking if x86_64-w64-mingw32-gcc static flag -static works
configure:10217: result: yes
configure:10232: checking if x86_64-w64-mingw32-gcc supports -c -o file.o
configure:10253: x86_64-w64-mingw32-gcc -c -m64 -g -DLIBJPEG_BUILDING -o out/conftest2.o conftest.c >&5
configure:10257: $? = 0
configure:10279: result: yes
configure:10287: checking if x86_64-w64-mingw32-gcc supports -c -o file.o
configure:10334: result: yes
configure:10367: checking whether the x86_64-w64-mingw32-gcc linker (C:/Program
Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/x86_64-w64-mingw32/bin/ld.exe) supports shared libraries
configure:11626: result: yes
configure:11866: checking dynamic linker characteristics
configure:12684: result: Win32 ld.exe
configure:12806: checking how to hardcode library paths into programs
configure:12831: result: immediate
configure:13379: checking whether stripping libraries is possible
configure:13384: result: yes
configure:13419: checking if libtool supports shared libraries
configure:13421: result: yes
configure:13424: checking whether to build shared libraries
configure:13449: result: no
configure:13452: checking whether to build static libraries
configure:13456: result: yes
configure:13575: checking libjpeg version number
configure:13585: result: 9.4.0
configure:13617: WARNING: cache variable lt_cv_path_LD contains a newline
configure:13699: checking that generated files are newer than configure
configure:13705: result: done
configure:13736: creating ./config.status
## ---------------------- ##
## Running config.status. ##
## ---------------------- ##
This file was extended by libjpeg config.status 9.4.0, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES =
CONFIG_HEADERS =
CONFIG_LINKS =
CONFIG_COMMANDS =
$ ./config.status
on DESKTOP-GGV5QKI
config.status:1114: creating Makefile
config.status:1114: creating libjpeg.pc
config.status:1114: creating jconfig.h
config.status:1328: executing depfiles commands
config.status:1405: cd . && sed -e '/# am--include-marker/d' Makefile | make -f - am--depfiles
/tmp/GmP09nS0:326: *** missing separator. Stop.
config.status:1410: $? = 2
config.status:1414: error: in `/c/users/username/.conan/data/libjpeg/9d/_/_/build/2e90c2fe2f69846019f521f2004427fb191035af':
config.status:1416: error: Something went wrong bootstrapping makefile fragments
for automatic dependency tracking. Try re-running configure with the
'--disable-dependency-tracking' option to at least be able to build
the package (albeit without support for automatic dependency tracking).
See `config.log' for more details
You likely made a modification to a Makefile.am that caused autoreconf and/or configure to fail. Run,
rm -f config.h* configure
to clean up, then run,
autoreconf; ./configure
to reconfigure. Of course, if you haven't undone the assumed, offending change to your Makefile.am in the meantime, you're going to end up in the same spot.
It is very possible that the libjpeg library doesn't compile with autotools and/or makefiles in the MinGW tool suite. Even if it is a gcc for Windows, it is not like all the code is fully portable between platforms, and those autotools or Makefiles might do some assumptions of platform that are not correct in Windows.
In general, the Visual Studio toolchain (MSBuild, cl.exe) is better supported in Windows platforms by the community, could be considered the default to-go, especially nowadays that the Visual Studio Community editions are completely free.
The packages in ConanCenter are also typically (and most of them, the ones created from the conan-center-index repo) built and tested with Visual Studio (several versions), so the support is expected to be much better than the one for MinGW.

Is it possible for C/C++ preprocessor to detect some compiler options?

I have a function with
static int include[MAX_NODE_NUMBER][MAX_NODE_NUMBER][MAX_NODE_NUMBER*MAX_NODE_NUMBER];
static bool calculated[MAX_NODE_NUMBER][MAX_NODE_NUMBER][MAX_NODE_NUMBER*MAX_NODE_NUMBER]={};
where MAX_NODE_NUMBER is 200. This can be compiled only when -mcmodel=large is in the gcc/g++ option. The two static variables are only to cache some data so they are not so necessary. Is it possible to code like
#if <some condition>
static int include[MAX_NODE_NUMBER][MAX_NODE_NUMBER][MAX_NODE_NUMBER*MAX_NODE_NUMBER];
static bool calculated[MAX_NODE_NUMBER][MAX_NODE_NUMBER][MAX_NODE_NUMBER*MAX_NODE_NUMBER]={};
#endif
so the program can be compiled for both large memory and small memory.
g++ defines:
$ g++ -E -dD -xc++ /dev/null | grep -i model
#define __code_model_small__ 1
$ g++ -E -dD -xc++ -mcmodel=large /dev/null | grep -i model
#define __code_model_large__ 1
Alternatively:
$ diff <(g++ -E -dD -xc++ /dev/null) <(g++ -E -dD -xc++ -mcmodel=large /dev/null)
270c270
< #define __code_model_small__ 1
---
> #define __code_model_large__ 1
you have command line option -D where you can define symbol
for example
-DMODEL_LARGE
then in your source file:
#ifdef MODEL_LARGE
static int include[MAX_NODE_NUMBER][MAX_NODE_NUMBER][MAX_NODE_NUMBER*MAX_NODE_NUMBER];
static bool calculated[MAX_NODE_NUMBER][MAX_NODE_NUMBER][MAX_NODE_NUMBER*MAX_NODE_NUMBER]={};
#endif

XSDK: linker error: dhcp_fine_tmr() & dhcp_coarse_tmr() undefined

What would cause the following Linker Error when compiling C++ XSDK project??
Linker Error Message:
./src/platform/platform_zynq.o: In function `timer_callback(XScuTimer*)':
platform_zynq.c:115:undefined reference to `dhcp_fine_tmr()'
platform_zynq.c:117:undefined reference to `dhcp_coarse_tmr()'
collect2.exe: error: ld returned 1 exit status
make: *** [uartcmd.elf] Error 1
Linker Command as follows:
arm-none-eabi-g++ \
-mcpu=cortex-a9 \
-mfpu=vfpv3 \
-mfloat-abi=hard \
-Wl,-build-id=none \
-specs=Xilinx.spec \
-Wl,-T\
-Wl,../src/lscript.ld \
-L../../uartcmd_bsp/ps7_cortexa9_0/lib \
-o "uartcmd.elf" \
./src/platform/platform.o \
./src/platform/platform_mb.o \
./src/platform/platform_ppc.o \
./src/platform/platform_zynq.o \
./src/platform/platform_zynqmp.o \
./src/fpga_registers2.clang.o \
./src/main.o \
./src/network.o \
-Wl,\
--start-group,-lxil,-lfreertos,-lgcc,-lc,-lstdc++,--end-group\
-Wl,--start-group,-lxil,-llwip4,-lgcc,-lc,--end-group
Configured Xilinx SDK project as follows:
// Step 0: Create Application Project with FreeRTOS Selected
//
// Step 1: Adding lwIP library to XSDK project.
//
// (2) Right click <app>_bsp and select
// "Board Support Package Settings"
// (3) Click Check box "lwip"
//
// Step 2: Add DHCP Support
// (1) Right click <app>_bsp and select
// "Board Support Package Settings"
// (2) Click Overview:freertos901_xilinx.lwip141
// (3) Check dhcp_options.dhcp_does_arp_check true
// (4) Check dhcp_options.lwip_dhcp true
Symbol Table as Follows:
$ nm ./zynq_rtl.sdk/uartcmd_bsp/ps7_cortexa9_0/lib/liblwip4.a | grep -i dhcp_fine
00001c7c T dhcp_fine_tmr
$ nm ./zynq_rtl.sdk/uartcmd_bsp/ps7_cortexa9_0/lib/liblwip4.a | grep -i dhcp_coarse
00001a54 T dhcp_coarse_tmr
$ nm -C ./uartcmd/Debug/src/platform/platform_zynq.o | grep dhcp_fine
U dhcp_fine_tmr()
$ nm -C ./uartcmd/Debug/src/platform/platform_zynq.o | grep dhcp_coarse
U dhcp_coarse_tmr()
Doesn't look like name mangle problem to me... I add "-C" option to prevent demangling of the symbol names...

Embedded pdfium in C++ application

I'm currently trying to build a C++ application witch is able to convert PDF files to images.
I want to use pdfium to do this.
So I built pdfium as explain in the wiki and copied headers and generated libs in my cmake project.
When I try to build my application I get the following error:
src/include/pdfium-linux64/v8/include/libplatform/libplatform.h:8:33: fatal error: include/v8-platform.h: no such file or directory
In fact in this file there is:
#include "include/v8-platform.h"
But directories are like this:
include
| pdfium-linux64
| | v8
| | | include
| | | | libplatform
| | | | \ libplatform.h
| | | | v8-platform.h
| | | \ ...
| | \ ...
| \ ...
\ ...
So it could not work..
Does anyone have an idea of what to do to fix this issue?
Thanks in advance.
Thanks to pdfshaver project, I found a solution:
directly install pdfium through .deb package
add gcc option:
-I/usr/include/pdfium/v8
-L/usr/lib/pdfium
-lpthread
-lpdfium
-lfpdfapi
-lfxge
-lfdrm
-lfpdfdoc
-lfxcodec
-lfxcrt
-lfxedit
-lpdfwindow
-ljsapi
-lv8_libplatform
-lv8_snapshot
-lv8_base
-lv8_libbase
-licui18n
-licuuc
-licudata
-lformfiller
-lfpdftext
-lfpdfdoc
-lbigint
-ljavascript
-lpthread

static compilation of proftpd on AIX

I'd like to compile proftpd on AIX to make it deployable on other server without having to reinstall all gnu lib library on each server.
I already manage to compile it dynamicaly, but I can't manage to get it compile with the option
LDFLAG="-Wl,-static"
like advise in the official proftpd documentation.
here the config.log error I get
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by configure, which was
generated by GNU Autoconf 2.61. Invocation command line was
$ ./configure LDFLAGS=-Wl,-static --with-modules=mod_tls:mod_sql:mod_sql_mysql:mod_sql_passwd:mod_sftp:mod_sftp_sql --without-getopt --enable-openssl --with-includes=/opt/freeware/include:/opt/freeware/include/mysql/mysql/:/home/poney2/src_proftpd/libmath_header/ --with-libraries=/opt/freeware/lib:/opt/freeware/lib/mysql/mysql/:/home/poney2/src_proftpd/libmath_lib --prefix=/home/poney/proftpd_bin --exec-prefix=/home/poney/proftpd_bin/proftpd
## --------- ##
## Platform. ##
## --------- ##
hostname = serverName
uname -m = 00C876004C00
uname -r = 1
uname -s = AIX
uname -v = 6
/usr/bin/uname -p = powerpc
/bin/uname -X = unknown
/bin/arch = unknown
/usr/bin/arch -k = unknown
/usr/convex/getsysinfo = unknown
/usr/bin/hostinfo = unknown
/bin/machine = unknown
/usr/bin/oslevel = 6.1.0.0
/bin/universe = unknown
PATH: /usr/bin
PATH: /etc
PATH: /usr/sbin
PATH: /usr/ucb
PATH: /home/poney/bin
PATH: /usr/bin/X11
PATH: /sbin
PATH: .
## ----------- ##
## Core tests. ##
## ----------- ##
configure:2122: checking build system type
configure:2140: result: powerpc-ibm-aix6.1.0.0
configure:2162: checking host system type
configure:2177: result: powerpc-ibm-aix6.1.0.0
configure:2199: checking target system type
configure:2214: result: powerpc-ibm-aix6.1.0.0
configure:2346: checking for gcc
configure:2362: found /usr/bin/gcc
configure:2373: result: gcc
configure:2611: checking for C compiler version
configure:2618: gcc --version >&5
gcc (GCC) 4.4.6
Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
configure:2621: $? = 0
configure:2628: gcc -v >&5
Using built-in specs.
Target: powerpc-ibm-aix6.1.0.0
Configured with: ../gcc-4.4.6/configure --with-as=/usr/bin/as --with-ld=/usr/bin/ld --enable-languages=c,c++,fortran --prefix=/opt/freeware --enable-threads --enable-version-specific-runtime-libs --disable-nls --enable-decimal-float=dpd --host=powerpc-ibm-aix6.1.0.0
Thread model: aix
gcc version 4.4.6 (GCC)
configure:2631: $? = 0
configure:2638: gcc -V >&5
gcc: '-V' option must have argument
configure:2641: $? = 1
configure:2664: checking for C compiler default output file name
configure:2691: gcc -Wl,-static conftest.c >&5
ld: 0706-012 The -t flag is not recognized.
ld: 0706-012 The -a flag is not recognized.
ld: 0706-012 The -t flag is not recognized.
ld: 0706-027 The -i flag is ignored.
ld: 0706-012 The -c flag is not recognized.
collect2: ld returned 255 exit status
configure:2694: $? = 1
configure:2732: result:
configure: failed program was:
| /* confdefs.h. */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PR_BUILD_OPTS " 'LDFLAGS=-Wl,-static' '--with-modules=mod_tls:mod_sql:mod_sql_mysql:mod_sql_passwd:mod_sftp:mod_sftp_sql' '--without-getopt' '--enable-openssl' '--with-includes=/opt/freeware/include:/opt/freeware/include/mysql/mysql/:/home/poney2/src_proftpd/libmath_header/' '--with-libraries=/opt/freeware/lib:/opt/freeware/lib/mysql/mysql/:/home/poney2/src_proftpd/libmath_lib' '--prefix=/home/poney/proftpd_bin' '--exec-prefix=/home/poney/proftpd_bin/proftpd'"
| #define PR_PLATFORM "AIX6 (AIX6_1_0_0)"
| /* end confdefs.h. */
|
| int
| main ()
| {
|
| ;
| return 0;
| }
configure:2738: error: C compiler cannot create executables
See `config.log' for more details.
## ---------------- ##
## Cache variables. ##
## ---------------- ##
ac_cv_build=powerpc-ibm-aix6.1.0.0
ac_cv_env_CC_set=''
ac_cv_env_CC_value=''
ac_cv_env_CFLAGS_set=''
ac_cv_env_CFLAGS_value=''
ac_cv_env_CPPFLAGS_set=''
ac_cv_env_CPPFLAGS_value=''
ac_cv_env_CPP_set=''
ac_cv_env_CPP_value=''
ac_cv_env_LDFLAGS_set=set
ac_cv_env_LDFLAGS_value=-Wl,-static
ac_cv_env_LIBS_set=''
ac_cv_env_LIBS_value=''
ac_cv_env_build_alias_set=''
ac_cv_env_build_alias_value=''
ac_cv_env_host_alias_set=''
ac_cv_env_host_alias_value=''
ac_cv_env_target_alias_set=''
ac_cv_env_target_alias_value=''
ac_cv_host=powerpc-ibm-aix6.1.0.0
ac_cv_prog_ac_ct_CC=gcc
ac_cv_target=powerpc-ibm-aix6.1.0.0
## ----------------- ##
## Output variables. ##
## ----------------- ##
ADDL_CPPFLAGS=''
ADDL_DIRS=''
ALLOCA=''
AR=''
ARGZ_H=''
BINDIR=''
BUILD_SHARED_MODULE_OBJS=''
BUILD_STATIC_MODULE_ARCHIVES=''
BUILD_STATIC_MODULE_OBJS=''
CC='gcc'
CFLAGS=''
CONFIG_SHELL='/bin/sh'
CPP=''
CPPFLAGS=''
CURSES_LIBS=''
DATADIR=''
DEFS=''
DSYMUTIL=''
DUMPBIN=''
ECHO_C='ECHO_N=''
ECHO_T=''
EGREP=''
ENABLE_NLS=''
ENABLE_TESTS=''
EXEEXT=''
FGREP=''
GLUE_MODULE_OBJS=''
GREP=''
INCLTDL=''
INCLUDEDIR=''
INCLUDES=''
INSTALL_DATA=''
INSTALL_DEPS=''
INSTALL_PROGRAM=''
INSTALL_SCRIPT=''
INSTALL_STRIP=''
LD=''
LDFLAGS='-Wl,-static'
LIBADD_DL=''
LIBADD_DLD_LINK=''
LIBADD_DLOPEN=''
LIBADD_SHL_LOAD=''
LIBDIRS=''
LIBEXECDIR=''
LIBLTDL=''
LIBOBJS=''
LIBRARIES=''
LIBS=''
LIBTOOL=''
LIBTOOL_DEPS=''
LIB_DEPS=''
LIB_OBJS=''
LIPO=''
LN_S=''
LOCALSTATEDIR=''
LTDLDEPS=''
LTDLINCL=''
LTDLOPEN=''
LTLIBOBJS=''
LT_CONFIG_H=''
LT_DLLOADERS=''
LT_DLPREOPEN=''
MAIN_LDFLAGS=''
MAIN_LIBS=''
MODULE_DEPS=''
MODULE_LDFLAGS=''
NM=''
NMEDIT=''
OBJDUMP=''
OBJEXT=''
OSREL='-DAIX6_1_0_0'
OSTYPE='-DAIX6'
OTOOL64=''
OTOOL=''
PACKAGE_BUGREPORT=''
PACKAGE_NAME=''
PACKAGE_STRING=''
PACKAGE_TARNAME=''
PACKAGE_VERSION=''
PATH_SEPARATOR=':'
PREFIX=''
RANLIB=''
SBINDIR=''
SED=''
SET_MAKE=''
SHARED_MODULE_DIRS=''
SHARED_MODULE_LIBS=''
SHARED_MODULE_OBJS=''
SHELL='/bin/sh'
STATIC_MODULE_DIRS=''
STATIC_MODULE_OBJS=''
STRIP=''
SYSCONFDIR=''
UTILS_LIBS=''
VERSION=''
ac_ct_CC='gcc'
ac_ct_DUMPBIN=''
bindir='${exec_prefix}/bin'
build='powerpc-ibm-aix6.1.0.0'
build_alias=''
build_cpu='powerpc'
build_os='aix6.1.0.0'
build_vendor='ibm'
datadir='${datarootdir}'
datarootdir='${prefix}/share'
docdir='${datarootdir}/doc/${PACKAGE}'
dvidir='${docdir}'
exec_prefix='/home/poney/proftpd_bin/proftpd'
host='powerpc-ibm-aix6.1.0.0'
host_alias=''
host_cpu='powerpc'
host_os='aix6.1.0.0'
host_vendor='ibm'
htmldir='${docdir}'
includedir='${prefix}/include'
infodir='${datarootdir}/info'
install_group=''
install_user=''
libdir='${exec_prefix}/lib'
libexecdir='${exec_prefix}/libexec'
localedir='${datarootdir}/locale'
localstatedir='${prefix}/var'
lt_ECHO='print -r'
ltdl_LIBOBJS=''
ltdl_LTLIBOBJS=''
mandir='${datarootdir}/man'
oldincludedir='/usr/include'
pdfdir='${docdir}'
pkgconfigdir=''
prefix='/home/poney/proftpd_bin'
program_transform_name='s,x,x,'
psdir='${docdir}'
sbindir='${exec_prefix}/sbin'
sharedstatedir='${prefix}/com'
subdirs=''
sys_symbol_underscore=''
sysconfdir='${prefix}/etc'
target='powerpc-ibm-aix6.1.0.0'
target_alias=''
target_cpu='powerpc'
target_os='aix6.1.0.0'
target_vendor='ibm'
## ----------- ##
## confdefs.h. ##
## ----------- ##
#define PACKAGE_NAME ""
#define PACKAGE_TARNAME ""
#define PACKAGE_VERSION ""
#define PACKAGE_STRING ""
#define PACKAGE_BUGREPORT ""
#define PR_BUILD_OPTS " 'LDFLAGS=-Wl,-static' '--with-modules=mod_tls:mod_sql:mod_sql_mysql:mod_sql_passwd:mod_sftp:mod_sftp_sql' '--without-getopt' '--enable-openssl' '--with-includes=/opt/freeware/include:/opt/freeware/include/mysql/mysql/:/home/poney2/src_proftpd/libmath_header/' '--with-libraries=/opt/freeware/lib:/opt/freeware/lib/mysql/mysql/:/home/poney2/src_proftpd/libmath_lib' '--prefix=/home/poney/proftpd_bin' '--exec-prefix=/home/poney/proftpd_bin/proftpd'"
#define PR_PLATFORM "AIX6 (AIX6_1_0_0)"
PS: I already try -Bstatic -all-static and -static flags but they are ignored.
Possible answer
Part of solution for me is modyfing the libpath to add a folder to this where I will put all the lib to pack it as a tar file and deploy the proftpd installation folder with the lib inside, it's not clean but it does work:
LDFLAGS="-Wl,-blibpath:/a/new/lib/path"
I do not validate my answer as it's not the real answer but that could help some of you.
PS: Please take into account that this is working with IBM XL C Compiler and should work on GCC as well
The output of the configure script shows:
configure:2691: gcc -Wl,-static conftest.c >&5
ld: 0706-012 The -t flag is not recognized.
ld: 0706-012 The -a flag is not recognized.
ld: 0706-012 The -t flag is not recognized.
ld: 0706-027 The -i flag is ignored.
ld: 0706-012 The -c flag is not recognized.
collect2: ld returned 255 exit status
This indicates that the -Wl option is successfully passing the option to ld, but ld does not recognize the option. As you're using AIX ld, it requires using -dn along with -bsvr4 with the link line, so, for example the flags option should read -Wl,-bsvr4 -Wl,-dn.
There is a note at the end of the man page for ld on AIX which states that:
The application can also have to be linked again whenever an updated release of the operating system is installed. Any application that is statically linked is not binary portable from any fix or release level to any other fix or release level.
Depending on the complexity of the final link line for proftpd, you can use the options -bstatic and -bdynamic to prompt the loading of static libraries for specific items; so in my case my final link line looked like:
gcc -o proftpd <lots of .o files> -L/home/user/Development/experiments/proftpd-1.3.4d/lib -lsupp -lcrypt -ldl -L/home/user/Development/experiments/proftpd-1.3.4d/lib/libcap -lcap -lpam
Now in this case, it means that it depends on libcrypt, which isn't a default shipped library, so I rejig the link line so that it has the -lcrypt wrapped:
-Wl,-bstatic -lcrypt -Wl,-bdynamic
and now it links with the static version of the crypt library, and no longer mentions it as part of the run-time link dependencies.
As an addenda to this, you should only static link the libraries that aren't shipped by default on the OS in question, and I note that proftpd supports dynamically loading modules, which means that you should only statically link the required modules.
In general, though, if you're building to deploy on another system, I would advise creating static-only copies of the dependent libraries that you're using and explicitly pass them into the configure options. This keeps the build environment clean from the run-time environment.
Can you try using only "-static" instead of "-Wl,-static"?