Coder Social home page Coder Social logo

wcc's Introduction

The Witchcraft Compiler Collection

Welcome to the Witchcraft Compiler Collection !

Purpose

WCC is a collection of compilation tools to perform binary black magic on the GNU/Linux and other POSIX platforms.

User manual

The WCC user manual is available online at : https://github.com/endrazine/wcc/wiki

Installation

Installation Requirements

The Witchcraft Compiler Collection requires the following software to be installed:

capstone, glibc, libbfd, libdl, zlib, libelf, libreadline, libgsl, make

Installation Requirements on Ubuntu/Debian

Under Ubuntu/Debian those dependencies can be installed with the following commands (tested on Ubuntu 22.04):

sudo apt-get install -y clang libbfd-dev uthash-dev libelf-dev libcapstone-dev  libreadline-dev libiberty-dev libgsl-dev build-essential git debootstrap file

Building and Installing:

Fetching the code over git

This will download the code of wcc from the internet to a directory named wcc in the current working directory:

git clone https://github.com/endrazine/wcc.git

You can then enter this directory with:

cd wcc

Initializing git submodules

From your root wcc directory, type:

git submodule init
git submodule update

Building WCC

From your root wcc directory, type:

make

Installing WCC

Then to install wcc, type:

sudo make install

Building the WCC documentation (Optional)

WCC makes use of doxygen to generate its documentation. From the root wcc directory, type

make documentation

Core commands

The following commands constitute the core of the Witchcraft Compiler Collection.

wld : The Witchcraft Linker.

wld takes an ELF executable as an input and modifies it to create a shared library.

wld command line options

jonathan@blackbox:~$ wld
Witchcraft Compiler Collection (WCC) version:0.0.6    (18:10:51 May 10 2024)

Usage: wld -libify [-noinit] file

Options:
    -libify          Transform executable into shared library.
    -noinit          Ignore constructors and desctructors in output library.
jonathan@blackbox:~$ 

Example usage of wld

The following example libifies the executable /bin/ls into a shared library named /tmp/ls.so.

jonathan@blackbox:~$ cp /bin/ls /tmp/ls.so
jonathan@blackbox:~$ wld -libify /tmp/ls.so
jonathan@blackbox:~$ 

Limits of wld

wld currently only works on ELF binaries. However wld can process ELF executables irrelevant of their architecture or operating system. wld could for instance process Intel, ARM or SPARC executables from Android, Linux, BSD or UNIX operating systems and transform them into "non relocatable shared libraries". Feel free to refer to the documentation under the /doc directory for more ample details.

wcc : The Witchcraft Compiler.

The wcc compiler takes binaries (ELF, PE, ...) as an input and creates valid ELF binaries as an output. It can be used to create relocatable object files from executables or shared libraries.

wcc command line options

jonathan@blackbox:~$ wcc
Witchcraft Compiler Collection (WCC) version:0.0.6    (18:10:50 May 10 2024)

Usage: wcc [options] file

options:

    -o, --output           <output file>
    -m, --march            <architecture>
    -e, --entrypoint       <0xaddress>
    -i, --interpreter      <interpreter>
    -p, --poison           <poison>
    -s, --shared
    -c, --compile
    -S, --static
    -x, --strip
    -X, --sstrip
    -E, --exec
    -C, --core
    -O, --original
    -D, --disasm
    -d, --debug
    -h, --help
    -v, --verbose
    -V, --version


jonathan@blackbox:~$ 

Example usage of wcc

The primary use of wcc is to "unlink" (undo the work of a linker) ELF binaries, either executables or shared libraries, back into relocatable shared objects. The following command line attempts to unlink the binary /bin/ls (from GNU binutils) into a relocatable file named /tmp/ls.o

jonathan@blackbox:~$ wcc -c /bin/ls -o /tmp/ls.o
jonathan@blackbox:~$ 

This relocatable file can then be used as if it had been directly produced by a compiler. The following command would use the gcc compiler to link /tmp/ls.o into a shared library /tmp/ls.so

jonathan@blackbox:~$ gcc /tmp/ls.o -o /tmp/ls.so -shared
jonathan@blackbox:~$ 

Limits of wcc

wcc will process any file supported by libbfd and produce ELF files that will contain the same mapping when relinked and executed. This includes PE or OSX COFF files in 32 or 64 bits. However, rebuilding relocations is currently supported only for Intel ELF x86_64 binaries. Transforming a PE into an ELF and invoking pure functions is for instance supported.

wsh : The Witchcraft shell

The witchcraft shell accepts ELF shared libraries, ELF ET_DYN executables and Witchcraft Shell Scripts written in Punk-C as an input. It loads all the executables in its own address space and makes their API available for programming in its embedded interpreter. This provides for binaries functionalities similar to those provided via reflection on languages like Java.

wsh command line options

jonathan@blackbox:~$ wsh -h
Usage: wsh [script] [-h|-q|-v|-V|-g] [binary1] [binary2] ... [-x [script_arg1] [script_arg2] ...]

Options:

    -x, --args                Optional script argument separator
    -q, --quiet               Display less output
    -v, --verbose             Display more output
    -g, --global              Bind symbols globally
    -V, --version             Display version and build, then exit

Script:

    If the first argument is an existing file which is not a known binary file format,
    it is assumed to be a lua script and gets executed.

Binaries:

    Any binary file name before the -x tag gets loaded before running the script.
    The last binary loaded is the main binary analyzed.

jonathan@blackbox:~$ 

Example usage of wsh

The following command loads the /usr/sbin/apache2 executable within wsh, calls the ap_get_server_banner() function within apache to retrieve its banner and displays it within the wsh interpreter.

jonathan@blackbox:~$ wsh /usr/sbin/apache2
> a = ap_get_server_banner()
> print(a)
Apache/2.4.7
> 

To get help at any time from the wsh interpreter, simply type help. To get help on a particular topic, type help("topic").

The following example illustrates how to display the main wsh help from the interpreter and how to get detailed help on the grep command by calling help("grep") from the wsh interpreter.

> help
  [Shell commands]

	help, quit, exit, shell, exec, clear

  [Functions]

 + basic:
	help(), man()

 + memory display:
	 hexdump(), hex_dump(), hex()

 + memory maps:
	shdrs(), phdrs(), map(), procmap(), bfmap()

 + symbols:
	symbols(), functions(), objects(), info(), search(), headers()

 + memory search:
	grep(), grepptr()

 + load libaries:
	loadbin(), libs(), entrypoints(), rescan()

 + code execution:
	libcall()

 + buffer manipulation:
	xalloc(), ralloc(), xfree(), balloc(), bset(), bget(), rdstr(), rdnum()

 + control flow:
	 breakpoint(), bp()

 + system settings:
	enableaslr(), disableaslr()

 + settings:
	 verbose(), hollywood()

 + advanced:
	ltrace()

Try help("cmdname") for detailed usage on command cmdname.

> help("grep")

	WSH HELP FOR FUNCTION grep


NAME

	grep

SYNOPSIS

	table match = grep(<pattern>, [patternlen], [dumplen], [before])

DESCRIPTION

	Search <pattern> in all ELF sections in memory. Match [patternlen] bytes, then display [dumplen] bytes, optionally including [before] bytes before the match. Results are displayed in enhanced decimal form

RETURN VALUES

	Returns 1 lua table containing matching memory addresses.


> 

Extending wsh with Witchcraft Shell Scripts

The combination of a full lua interpreter in the same address space as the loaded executables and shared libraries in combination with the reflection like capabilities of wsh allow calling any function loaded in the address space from the wsh interpreter transparently. The resulting API, a powerful combination of lua and C API is called Punk-C. Wsh is fully scriptable in Punk-C, and executes Punk-C on the fly via its dynamic interpreter. Scripts in Punk C can be invoked by specifying the full path to wsh in the magic bytes of a wsh shell. The following command displays the content of a Witchcraft shell script:

jonathan@blackbox:/usr/share/wcc/scripts$ cat md5.wsh
#!/usr/bin/wsh

-- Computing a MD5 sum using cryptographic functions from foreign binaries (eg: sshd/OpenSSL)

function str2md5(input)

	out = calloc(33, 1)
	ctx = calloc(1024, 1)

	MD5_Init(ctx)
	MD5_Update(ctx, input, strlen(input))
	MD5_Final(out, ctx)

	free(ctx)
	return out
end

input = "Message needing hashing\n"
hash = str2md5(input)
hexdump(hash,16)

exit(0)
jonathan@blackbox:/usr/share/wcc/scripts$ 

To run this script using the API made available inside the address space of sshd, simply run:

jonathan@blackbox:/usr/share/wcc/scripts$ ./md5.wsh /usr/sbin/sshd 
0x43e8b280    d6 fc 46 91 b0 6f ab 75 4d 9c a7 58 6d 9c 7e 36    V|F.0o+uM.'Xm.~6
jonathan@blackbox:/usr/share/wcc/scripts$ 

Limits of wsh

wsh can only load shared libraries and ET_DYN dynamically linked ELF executables directly. This means ET_EXEC executables may need to be libified using wld before use in wsh. Binaries in other file formats might need to be turned into ELF files using wcc.

Note: Analysing and Executing ARM/SPARC/MIPS binaries "natively" on Intel x86_64 cpus via JIT binary translation

wsh can be cross compiled to ARM, SPARC, MIPS and other platforms and used in association with the qemu's user space emulation mode to provide JIT binary translation on the fly and analyse shared libraries and binaries from other cpus without requiring emulation of a full operating system in a virtual machine. The analyzed binaries are translated from one CPU to an other, and the analysed binaries, the wsh cross compiled analyser and the qemu binary translator share the address space of a single program. This significantly diminishes the complexity of analysing binaries across different hardware by seemingly allowing to run ARM or SPARC binaries on a linux x86_64 machine natively and transparently.

Other commands

The following auxiliary commands are available with WCC. They are typically simple scripts built on top of WCC.

wldd : print shared libraries compilation flags

When compiling C code, it is often required to pass extra arguments to the compiler to signify which shared libraries should be explicitly linked against the compile code. Figuring out those compilation parameters can be cumbersome. The wldd commands displays the shared libraries compilation flags given at compile time for any given ELF binary.

wldd command line options

jonathan@blackbox:~$ wldd 
Usage: /usr/bin/wldd </path/to/bin>

  Returns libraries to be passed to gcc to relink this application.

jonathan@blackbox:~$ 

Example usage of wldd

The following command displays shared libraries compilation flags as passed to gcc when compiling /bin/ls from GNU binutils:

jonathan@blackbox:~$ wldd /bin/ls
-lselinux -lacl -lc -lpcre -ldl -lattr 
jonathan@blackbox:~$

wcch : generate C headers from binaries

The wcch command takes an ELF binary path as a command line, and outputs a minimal C header file declaring all the exported global variables and functions from the input binary. This automates prototypes declaration when writing C code and linking with a binary for which C header files are not available.

Example usage of wcch

The following command instructs wcch to generate C headers from the apache2 executable and redirects the output from the standard output to a file named /tmp/apache2.h ready for use as a header in a C application.

jonathan@blackbox:~$ wcch /usr/sbin/apache2 >/tmp/apache2.h
jonathan@blackbox:~$ 

Downloading the source code

The official codebase of the Witchcraft Compiler Collection is hosted on github at https://github.com/endrazine/wcc/ . It uses git modules, so some extra steps are needed to fetch all the code including dependencies. To download the source code of wcc, in a terminal, type:

git clone https://github.com/endrazine/wcc.git
cd wcc
git submodule init
git submodule update

This will create a directory named wcc and fetch all required source code in it.

Greetings

The Witchcraft Compiler Collection uses the following amazing Open Source third party software:

Testing

The following companion repository exsists to help test WCC: https://github.com/endrazine/wcc-tests

Licence

The Witchcraft Compiler Collection is published under the MIT License. Please refer to the file named LICENSE for more information.

wcc's People

Contributors

ampotos avatar aurel32 avatar conradjones avatar endrazine avatar franciscod avatar izabera avatar joeyrideout avatar juliosueiras avatar lgtm-migrator avatar mend-bolt-for-github[bot] avatar mic92 avatar msbit avatar nabijaczleweli avatar ramnes avatar roboschmied avatar tau-dev avatar tjzabel avatar xorond avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

wcc's Issues

Segmentation fault upon running wsh

Hi I was just playing with wsh. I got the errors showing below.

wsh /usr/bin/python2.7

[SIGSEGV] Read 000000000017 (address not mapped to object)
000042009ce4 wsh(scan_sections+0x91)
000042009dfd wsh(shdr_callback+0x60)
7f5ff1f8a5a4 /usr/lib/libc.so.6(dl_iterate_phdr+0xf4)
00004200cd41 wsh(reload_elfs+0x2f8)
00004201de40 wsh(main+0x67)
7f5ff1e8c291 /usr/lib/libc.so.6(__libc_start_main+0xf1)
0000420078fa wsh(_start+0x2a)
Segmentation fault

Linux hostname 4.7.2-1-ck #1 SMP PREEMPT Sat Aug 20 14:07:40 EDT 2016 x86_64 GNU/Linux

Ubuntu build issue

After getting dependencies installed on Ubuntu 14.04 (steps here), make exits with the following warnings and errors.

The following error appears to be the only blocker:
/home/ubuntu/wcc/src/wcc/wcc.c:2638: undefined reference to 'DL_COUNT'

... which is odd because utlist.h is included in the file, which should define that macro. Could use some help debugging this! Full make output is below.

make_output.txt

Segfault attempting to run wcc on libvivoxsdk.so

Attempting to run wcc on libvivoxsdk.so causes a segfault for me.
Here are the last few lines in debug mode:

--> transforming relocation from section: .gnu.hash at 0x195f39:    cmp eax, 0xff   inslen:3  argoffset:4294967295
new local sindex:1 addent:43, off:0x10000d478   hasrel:0
[1]    23189 segmentation fault (core dumped)  wcc -m i386 -d -s libvivoxsdk.bak -o libvivoxsdk.so

Here's a full log:
https://gist.github.com/no-boot-device/d82e50e52f95e00a71ceb41546c6d20e
And here's the full file:
https://drive.google.com/file/d/0BwgL44rRXZ5SNE5uZl84OHJWaEU/view?usp=sharing

It appears to output a file which file recognizes yet has a different hash, and also has seemingly good section headers, but I'm concerned about it segfaulting. (is this just a Thank you for playing Wing Commander! sort of thing?)

wsh: invalid lua syntax from mangled symbols

Running wsh on binaries with non-alphanumeric symbols (e.g. the mangled ones produced by rustc) results in output like

ERROR: Wsh internal lua initialization (Synthax Error): Wsh internal lua buffer:2070: '(' expected near '$'

which refers to this line in the generated lua:

function _ZN4core3num68_$LT$impl$u20$core..convert..TryFrom$LT$i16$GT$$u20$for$u20$u128$GT$8try_from17h890e52784dfa2181E (a, b, c, d, e, f, g, h) j,k = libcall(reflect__ZN4core3num68_$LT$impl$u20$core..convert..TryFrom$LT$i16$GT$$u20$for$u20$u128$GT$8try_from17h890e52784dfa2181E, a, b, c, d, e, f, g, h); return j, k; end

It might be nice to support demangling, though that may complicate parsing (angle brackets, parentheses, and colons would be valid in symbol names); in any event it would be nice for these symbols to not prevent wsh from running.

ARM Compilation broken

Compilation fails on arm systems unless '-masm=intel' is removed from compile flags in Makefile.

This is an x86-only gcc option apparently: http://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-20140512/105322.html

Also I need to change src/wsh/script.lds with system version from /usr/lib/ldscripts/armelf_linux_eabi.xc (and probably change some addresses?), or remove the link script entirely from build flags.

Either way, wsh segfaults once built inside of my arm chroot:

wsh /bin/ls
init
open: Cannot allocate memory
WARNING: No binary loaded in memory. Try loadbin(). For help type help("loadbin").
WARNING: No binary loaded in memory. Try loadbin(). For help type help("loadbin").
ERROR: State not recoverable (131)
ERROR: State not recoverable (131)
ERROR: State not recoverable (131)
ERROR: State not recoverable (131)
ERROR: State not recoverable (131)
ERROR: State not recoverable (131)
ERROR: State not recoverable (131)
ERROR: State not recoverable (131)
ERROR: State not recoverable (131)
ERROR: State not recoverable (131)
> loadbin('/bin/sh')๏ฟฝ(๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝr๏ฟฝ๏ฟฝ๏ฟฝr๏ฟฝ๏ฟฝ๏ฟฝr๏ฟฝ๏ฟฝ๏ฟฝr๏ฟฝ๏ฟฝ๏ฟฝr๏ฟฝ๏ฟฝ๏ฟฝr๏ฟฝ๏ฟฝ๏ฟฝr๏ฟฝ๏ฟฝ๏ฟฝr๏ฟฝ
ERROR: dlopen() /bin/sh: cannot dynamically load executable 
 ** libifying /bin/sh to //tmp/.wsh-29291/sh (697468 bytes)
qemu-arm-static: /build/qemu-VyWqJ2/qemu-2.8+dfsg/translate-all.c:175: tb_lock: Assertion `!have_tb_lock' failed.
qemu-arm-static: /build/qemu-VyWqJ2/qemu-2.8+dfsg/translate-all.c:175: tb_lock: Assertion `!have_tb_lock' failed.
Segmentation fault (core dumped)

I saw you removed the arm-specific makefile, is arm not supported anymore?

Not an issue but a thank you...

Having had a tool doing exactly the same first time I got stuck with a 3rd part executable being dynamically link to an obsolete libc 10 years ago, I am glad that someone else also recognised this need and actually fixed it.

Ps.
I will fix the linked libraries parsing as relaying on ldd wont do for cross-compilation and such.
Ds.

wsh segfaulting on startup

$ wsh
[SIGSEGV] Read 000000000017 (address not mapped to object)
000042009d64 wsh(scan_sections+0x91)
000042009e7d wsh(shdr_callback+0x60)
7fd279ade6a4 /usr/lib/libc.so.6(dl_iterate_phdr+0xf4)
00004200cdc1 wsh(reload_elfs+0x2f8)
00004201deb9 wsh(main+0x67)
7fd2799e2741 /usr/lib/libc.so.6(__libc_start_main+0xf1)
000042007979 wsh(_start+0x29)
[1] 18835 segmentation fault wsh

% uname -a
Linux hostname 4.6.3-1-ARCH #1 SMP PREEMPT Fri Jun 24 21:19:13 CEST 2016 x86_64 GNU/Linux

Demangled symbols aren't displayed/made accessible

Thanks for your work on wcc. I'd been looking for an excuse to try it out and had the opportunity to use it recently.

Hit a couple of issues along the way so thought I'd mention them.

The app[*] I was investigating was C++ based but I discovered that the wsh C++ symbol demangling functionality appears to have been disabled at some point.

My current understanding is:

Unsure if this is in any way related to #24.

It would be useful to have access/visibility into the demangled symbols so hopefully this information will give someone (maybe me? :D ) a starting point to enabling this.


[*] Funny story: So, the app I was poking around in was KiCad--the FLOSS electronic design software--which is implemented via the wxWidgets framework. Currently there's no way to automate the schematic-related functionality so I wondered if wcc might help provide a way to do so. Only to eventually discover that KiCad currently implements its core functionality as a (somewhat non-standard) shared library already! :D (Although, given how it's implemented, using the functionality still seems like a non-trivial task...)

Example usage of WSH under QEMU user-space emulation?

Jonathan you mentioned it was possible to use WSH on ARM binaries from x86 Linux in a single process using QEMU, and I think I almost got it, but not quite. Maybe I need an example. Here's where I start:
$ uname -a Linux mmyers-Ubuntu16VM 4.4.0-34-generic #53-Ubuntu SMP Wed Jul 27 16:06:39 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
I test that I can compile and run an ARM Hello World using QEMU user-space emulation:
$ sudo apt-get install qemu qemu-user-static gcc-arm-linux-gnueabi
$ arm-linux-gnueabi-gcc -Wall -o hello helloworld.c
$ qemu-arm-static -L /usr/arm-linux-gnueabi/ hello
hello world!

It seems like I should be able to use wsh-arm on this hello process since they are similar-ish.
$ file hello
hello: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.3, for GNU/Linux 3.2.0, BuildID[sha1]=29f94eddb883c86a6ec58f685c848a560ad64bfb, not stripped
$ file ./wcc/bin/wsh-arm
./wcc/bin/wsh-arm: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /usr/arm-linux-gnueabi/lib/ld-linux.so.3, for GNU/Linux 2.6.32, BuildID[sha1]=2dc627daeba328aa3212f1731f0fec86665cb7bb, not stripped

So I do this and woops!
$ qemu-arm-static -L /usr/arm-linux-gnueabi/ ./wcc/bin/wsh-arm hello
qemu: uncaught target signal 11 (Segmentation fault) - core dumped Segmentation fault (core dumped)

This is probably user error? Thanks again for any clarification you can provide!

Build problems; suggestions for the Readme

  1. Maybe you think it goes without saying but this git repo is using git submodules, so you have to pull in the other repos to the source tree:
git clone https://github.com/endrazine/wcc.git
cd wcc
git submodule init
git submodule update
  1. All of these unstated dependencies had to be installed in order to build (Ubuntu 16.04) so it seems worth putting in the readme:
    sudo apt-get install clang libbfd-dev uthash-dev libelf-dev libcapstone-dev libreadline6 libreadline6-dev libiberty-dev libgsl-dev

  2. I had to add a line to wcc.c, in order to pull in the definition of a macro called PRIx64:
    #include <inttypes.h>

Undefined symbols when running 'wsh'.

markus@markus:~/Downloads/wcc3$ /usr/bin/wsh
init
WARNING: No binary loaded in memory. Try loadbin(). For help type help("loadbin").
ERROR: /lib/x86_64-linux-gnu/libdl.so.2: undefined symbol: __pthread_key_create
ERROR: /lib/x86_64-linux-gnu/libdl.so.2: undefined symbol: _ITM_deregisterTMCloneTable
ERROR: /lib/x86_64-linux-gnu/libdl.so.2: undefined symbol: __pthread_getspecific
ERROR: /lib/x86_64-linux-gnu/libdl.so.2: undefined symbol: gmon_start
ERROR: /lib/x86_64-linux-gnu/libdl.so.2: undefined symbol: __pthread_once
ERROR: /lib/x86_64-linux-gnu/libdl.so.2: undefined symbol: _Jv_RegisterClasses
ERROR: /lib/x86_64-linux-gnu/libdl.so.2: undefined symbol: _ITM_registerTMCloneTable
ERROR: /lib/x86_64-linux-gnu/libdl.so.2: undefined symbol: __pthread_setspecific
ERROR: /lib/x86_64-linux-gnu/libdl.so.2: undefined symbol: GLIBC_2.2.5
ERROR: /lib/x86_64-linux-gnu/libdl.so.2: undefined symbol: GLIBC_2.3.3
ERROR: /lib/x86_64-linux-gnu/libdl.so.2: undefined symbol: GLIBC_2.3.4
ERROR: /lib/x86_64-linux-gnu/libdl.so.2: undefined symbol: GLIBC_PRIVATE
ERROR: /lib/x86_64-linux-gnu/libc.so.6: undefined symbol: _dl_starting_up
ERROR: /lib/x86_64-linux-gnu/libc.so.6: undefined symbol: _obstack
ERROR: /lib/x86_64-linux-gnu/libc.so.6: undefined symbol: get_kernel_syms
ERROR: /lib/x86_64-linux-gnu/libc.so.6: undefined symbol: _res
ERROR: /lib/x86_64-linux-gnu/libc.so.6: undefined symbol: step
ERROR: /lib/x86_64-linux-gnu/libc.so.6: undefined symbol: GLIBC_PRIVATE
ERROR: /lib/x86_64-linux-gnu/libc.so.6: undefined symbol: __ctype_tolower
ERROR: /lib/x86_64-linux-gnu/libc.so.6: undefined symbol: __ctype_b
ERROR: /lib/x86_64-linux-gnu/libc.so.6: undefined symbol: __secure_getenv
ERROR: /lib/x86_64-linux-gnu/libc.so.6: undefined symbol: GLIBC_2.3
ERROR: /lib/x86_64-linux-gnu/libc.so.6: undefined symbol: GLIBC_2.4
ERROR: /lib/x86_64-linux-gnu/libc.so.6: undefined symbol: GLIBC_2.5
ERROR: /lib/x86_64-linux-gnu/libc.so.6: undefined symbol: GLIBC_2.6
ERROR: /lib/x86_64-linux-gnu/libc.so.6: undefined symbol: __ctype_toupper
ERROR: /lib/x86_64-linux-gnu/libc.so.6: undefined symbol: GLIBC_2.7
ERROR: /lib/x86_64-linux-gnu/libc.so.6: undefined symbol: GLIBC_2.8
ERROR: /lib/x86_64-linux-gnu/libc.so.6: undefined symbol: GLIBC_2.9
ERROR: /lib/x86_64-linux-gnu/libc.so.6: undefined symbol: create_module
ERROR: /lib/x86_64-linux-gnu/libc.so.6: undefined symbol: query_module
ERROR: /lib/x86_64-linux-gnu/libc.so.6: undefined symbol: GLIBC_2.10
ERROR: /lib/x86_64-linux-gnu/libc.so.6: undefined symbol: GLIBC_2.11
ERROR: /lib/x86_64-linux-gnu/libc.so.6: undefined symbol: GLIBC_2.12
ERROR: /lib/x86_64-linux-gnu/libc.so.6: undefined symbol: GLIBC_2.13
ERROR: /lib/x86_64-linux-gnu/libc.so.6: undefined symbol: GLIBC_2.14
ERROR: /lib/x86_64-linux-gnu/libc.so.6: undefined symbol: GLIBC_2.15
ERROR: /lib/x86_64-linux-gnu/libc.so.6: undefined symbol: GLIBC_2.16
ERROR: /lib/x86_64-linux-gnu/libc.so.6: undefined symbol: GLIBC_2.17
ERROR: /lib/x86_64-linux-gnu/libc.so.6: undefined symbol: GLIBC_2.18
ERROR: /lib/x86_64-linux-gnu/libc.so.6: undefined symbol: __ctype32_tolower
ERROR: /lib/x86_64-linux-gnu/libc.so.6: undefined symbol: uselib
ERROR: /lib/x86_64-linux-gnu/libc.so.6: undefined symbol: GLIBC_2.22
ERROR: /lib/x86_64-linux-gnu/libc.so.6: undefined symbol: GLIBC_2.23
ERROR: /lib/x86_64-linux-gnu/libc.so.6: undefined symbol: advance
ERROR: /lib/x86_64-linux-gnu/libc.so.6: undefined symbol: GLIBC_2.2.5
ERROR: /lib/x86_64-linux-gnu/libc.so.6: undefined symbol: GLIBC_2.2.6
ERROR: /lib/x86_64-linux-gnu/libc.so.6: undefined symbol: __ctype32_toupper
ERROR: /lib/x86_64-linux-gnu/libc.so.6: undefined symbol: GLIBC_2.3.2
ERROR: /lib/x86_64-linux-gnu/libc.so.6: undefined symbol: GLIBC_2.3.3
ERROR: /lib/x86_64-linux-gnu/libc.so.6: undefined symbol: GLIBC_2.3.4
ERROR: /lib/x86_64-linux-gnu/libc.so.6: undefined symbol: bdflush
ERROR: /lib/x86_64-linux-gnu/libc.so.6: undefined symbol: __ctype32_b
ERROR: /lib/x86_64-linux-gnu/libc.so.6: undefined symbol: loc1
ERROR: /lib/x86_64-linux-gnu/libc.so.6: undefined symbol: loc2
ERROR: /lib/x86_64-linux-gnu/libc.so.6: undefined symbol: sigvec
ERROR: /lib/x86_64-linux-gnu/libc.so.6: undefined symbol: locs
ERROR: /lib64/ld-linux-x86-64.so.2: undefined symbol: __get_cpu_features
ERROR: /lib64/ld-linux-x86-64.so.2: undefined symbol: _dl_get_tls_static_info
ERROR: /lib64/ld-linux-x86-64.so.2: undefined symbol: GLIBC_PRIVATE
ERROR: /lib64/ld-linux-x86-64.so.2: undefined symbol: GLIBC_2.3
ERROR: /lib64/ld-linux-x86-64.so.2: undefined symbol: GLIBC_2.4
ERROR: /lib64/ld-linux-x86-64.so.2: undefined symbol: free
ERROR: /lib64/ld-linux-x86-64.so.2: undefined symbol: realloc
ERROR: /lib64/ld-linux-x86-64.so.2: undefined symbol: _dl_allocate_tls
ERROR: /lib64/ld-linux-x86-64.so.2: undefined symbol: _r_debug
ERROR: /lib64/ld-linux-x86-64.so.2: undefined symbol: __libc_stack_end
ERROR: /lib64/ld-linux-x86-64.so.2: undefined symbol: __libc_memalign
ERROR: /lib64/ld-linux-x86-64.so.2: undefined symbol: _dl_deallocate_tls
ERROR: /lib64/ld-linux-x86-64.so.2: undefined symbol: _dl_find_dso_for_object
ERROR: /lib64/ld-linux-x86-64.so.2: undefined symbol: calloc
ERROR: /lib64/ld-linux-x86-64.so.2: undefined symbol: _dl_argv
ERROR: /lib64/ld-linux-x86-64.so.2: undefined symbol: _dl_mcount
ERROR: /lib64/ld-linux-x86-64.so.2: undefined symbol: _dl_tls_setup
ERROR: /lib64/ld-linux-x86-64.so.2: undefined symbol: _dl_debug_state
ERROR: /lib64/ld-linux-x86-64.so.2: undefined symbol: _rtld_global
ERROR: /lib64/ld-linux-x86-64.so.2: undefined symbol: GLIBC_2.2.5
ERROR: /lib64/ld-linux-x86-64.so.2: undefined symbol: __tls_get_addr
ERROR: /lib64/ld-linux-x86-64.so.2: undefined symbol: _dl_make_stack_executable
ERROR: /lib64/ld-linux-x86-64.so.2: undefined symbol: malloc
ERROR: /lib64/ld-linux-x86-64.so.2: undefined symbol: _dl_allocate_tls_init
ERROR: /lib64/ld-linux-x86-64.so.2: undefined symbol: _rtld_global_ro
ERROR: /lib64/ld-linux-x86-64.so.2: undefined symbol: __libc_enable_secure
ERROR: /lib64/ld-linux-x86-64.so.2: undefined symbol: _dl_rtld_di_serinfo

lua submodule ref missing

Following the git clone, cd, git submodule init, git submodule update process on 20160124; the submodule update command failed with

$ git submodule update
fatal: reference is not a tree: 7d19fe6f4d59543ce5a61b640350805064ac5652
Unable to checkout '7d19fe6f4d59543ce5a61b640350805064ac5652' in submodule path 'src/wsh/lua'

Was 7d19fe6f4d59543ce5a61b640350805064ac5652 in a branch other than master in https://github.com/lua/lua.git ? Because checking out master instead results in a make error:

[...]
make[3]: Leaving directory `/home/bengardiner/src/wcc/src/wsh/openlibm'
cd lua && make linux CFLAGS="-fpie -fPIC"
make[3]: Entering directory `/home/bengardiner/src/wcc/src/wsh/lua'
make[3]: *** No rule to make target `linux'.  Stop.
[...]

Linking troubles when building

Using openSUSE Tumbleweed, this happens:

cc -W -Wall -Wno-discarded-qualifiers -Wno-int-conversion -Wno-unused-parameter -Wno-unused-function -Wno-unused-result -fpie -pie -fPIC -g3 -ggdb -I../../include  -I./include/sflib/ -I./include -I../../include/  -Wno-incompatible-pointer-types  -fstack-protector-all -Wl,-z,relro,-z,now -DPACKAGE -DPACKAGE_VERSION -masm=intel -rdynamic -D_FORTIFY_SOURCE=2 -O2 wcc.c -o wcc -lbfd -lelf -lcapstone
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: /usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(compress.o): undefined reference to symbol 'inflateEnd'
/lib64/libz.so.1: error adding symbols: DSO missing from command line

Adding a -lz produces this:

cc -W -Wall -Wno-discarded-qualifiers -Wno-int-conversion -Wno-unused-parameter -Wno-unused-function -Wno-unused-result -fpie -pie -fPIC -g3 -ggdb -I../../include  -I./include/sflib/ -I./include -I../../include/  -Wno-incompatible-pointer-types  -fstack-protector-all -Wl,-z,relro,-z,now -DPACKAGE -DPACKAGE_VERSION -masm=intel -rdynamic -D_FORTIFY_SOURCE=2 -O2 wcc.c -o wcc -lbfd -lelf -lcapstone -lz
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elflink.o): In function `elf_link_add_object_symbols':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elflink.c:5102: undefined reference to `objalloc_free_block'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elflink.c:5353: undefined reference to `_sch_istable'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elflink.o): In function `bfd_elf_size_dynamic_sections':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elflink.c:6543: undefined reference to `lbasename'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elflink.c:6319: undefined reference to `lbasename'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elflink.o): In function `elf_output_implib':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elflink.c:11427: undefined reference to `xmalloc'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(pei-x86_64.o): In function `pex64_bfd_print_pdata_section':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/pei-x86_64.c:531: undefined reference to `xmalloc'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/pei-x86_64.c:607: undefined reference to `xmalloc'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elf32-arm.o): In function `add_unwind_table_edit':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elf32-arm.c:12604: undefined reference to `xmalloc'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elf32-arm.c:12604: undefined reference to `xmalloc'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elf32-arm.o):/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elf32-arm.c:5901: more undefined references to `xmalloc' follow
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(xcofflink.o): In function `xcoff_archive_info_hash':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/xcofflink.c:496: undefined reference to `htab_hash_pointer'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(xcofflink.o): In function `_bfd_xcoff_bfd_link_hash_table_free':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/xcofflink.c:583: undefined reference to `htab_delete'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(xcofflink.o): In function `xcoff_get_archive_info':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/xcofflink.c:521: undefined reference to `htab_find_slot'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(xcofflink.o): In function `xcoff_set_import_path':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/xcofflink.c:757: undefined reference to `filename_cmp'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/xcofflink.c:758: undefined reference to `filename_cmp'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/xcofflink.c:759: undefined reference to `filename_cmp'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(xcofflink.o): In function `_bfd_xcoff_bfd_link_hash_table_create':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/xcofflink.c:608: undefined reference to `htab_create'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(xcofflink.o): In function `bfd_xcoff_split_import_path':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/xcofflink.c:690: undefined reference to `lbasename'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elf64-ppc.o): In function `ppc64_elf_link_hash_table_free':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elf64-ppc.c:4334: undefined reference to `htab_delete'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elf64-ppc.o): In function `ppc64_elf_link_hash_table_create':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elf64-ppc.c:4377: undefined reference to `htab_try_create'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elf64-ppc.o): In function `tocsave_find':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elf64-ppc.c:7543: undefined reference to `htab_find_slot_with_hash'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(bfd.o): In function `bfd_errmsg':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/bfd.c:575: undefined reference to `xstrerror'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(bfd.o): In function `_bfd_doprnt':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/bfd.c:704: undefined reference to `_sch_istable'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/bfd.c:732: undefined reference to `_sch_istable'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(bfd.o): In function `_bfd_doprnt_scan':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/bfd.c:958: undefined reference to `_sch_istable'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/bfd.c:986: undefined reference to `_sch_istable'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/bfd.c:1011: undefined reference to `_sch_istable'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(bfd.o):/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/bfd.c:974: more undefined references to `_sch_istable' follow
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(bfd.o): In function `bfd_demangle':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/bfd.c:2260: undefined reference to `cplus_demangle'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/bfd.c:2260: undefined reference to `cplus_demangle'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(hash.o): In function `bfd_hash_table_free':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/hash.c:426: undefined reference to `objalloc_free'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(hash.o): In function `bfd_hash_table_init_n':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/hash.c:385: undefined reference to `objalloc_create'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/hash.c:392: undefined reference to `_objalloc_alloc'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(hash.o): In function `bfd_hash_insert':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/hash.c:535: undefined reference to `_objalloc_alloc'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(hash.o): In function `bfd_hash_lookup':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/hash.c:485: undefined reference to `_objalloc_alloc'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(hash.o): In function `bfd_hash_allocate':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/hash.c:622: undefined reference to `_objalloc_alloc'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(opncls.o): In function `_bfd_delete_bfd':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/opncls.c:126: undefined reference to `objalloc_free'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(opncls.o): In function `find_separate_debug_file':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/opncls.c:1459: undefined reference to `lrealpath'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(opncls.o): In function `_bfd_new_bfd':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/opncls.c:74: undefined reference to `objalloc_create'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(opncls.o): In function `_bfd_free_cached_info':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/opncls.c:143: undefined reference to `objalloc_free'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(opncls.o): In function `bfd_fopen':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/opncls.c:234: undefined reference to `xstrdup'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(opncls.o): In function `bfd_openstreamr':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/opncls.c:401: undefined reference to `xstrdup'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(opncls.o): In function `bfd_openw':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/opncls.c:664: undefined reference to `xstrdup'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(opncls.o): In function `bfd_create':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/opncls.c:804: undefined reference to `xstrdup'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(opncls.o): In function `bfd_alloc':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/opncls.c:949: undefined reference to `_objalloc_alloc'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(opncls.o): In function `bfd_openr_iovec':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/opncls.c:597: undefined reference to `xstrdup'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(opncls.o): In function `bfd_create_gnu_debuglink_section':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/opncls.c:1667: undefined reference to `lbasename'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(opncls.o): In function `bfd_fill_in_gnu_debuglink_section':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/opncls.c:1761: undefined reference to `lbasename'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(opncls.o): In function `bfd_release':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/opncls.c:1043: undefined reference to `objalloc_free_block'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(syms.o): In function `bfd_decode_symclass':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/syms.c:709: undefined reference to `_sch_toupper'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(syms.o): In function `_bfd_stab_section_find_nearest_line':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/syms.c:1395: undefined reference to `filename_ncmp'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/syms.c:1396: undefined reference to `filename_cmp'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(binary.o): In function `mangle_name':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/binary.c:139: undefined reference to `_sch_istable'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(ihex.o): In function `ihex_bad_byte':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/ihex.c:221: undefined reference to `_sch_istable'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(ihex.o): In function `ihex_object_p':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/ihex.c:509: undefined reference to `_hex_value'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(ihex.o): In function `ihex_init':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/ihex.c:168: undefined reference to `hex_init'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(ihex.o): In function `ihex_read_section':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/ihex.c:578: undefined reference to `_hex_value'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(srec.o): In function `srec_init':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/srec.c:186: undefined reference to `hex_init'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(srec.o): In function `srec_read_section':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/srec.c:748: undefined reference to `_hex_value'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(srec.o): In function `srec_bad_byte':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/srec.c:251: undefined reference to `_sch_istable'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(srec.o): In function `srec_scan':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/srec.c:469: undefined reference to `_hex_value'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/srec.c:373: undefined reference to `_sch_istable'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/srec.c:387: undefined reference to `_hex_value'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(srec.o): In function `srec_object_p':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/srec.c:661: undefined reference to `_hex_value'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(srec.o): In function `srec_init':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/srec.c:186: undefined reference to `hex_init'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/srec.c:186: undefined reference to `hex_init'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(tekhex.o): In function `getvalue':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/tekhex.c:279: undefined reference to `_hex_value'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(tekhex.o): In function `getsym':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/tekhex.c:304: undefined reference to `_hex_value'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(tekhex.o): In function `first_phase':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/tekhex.c:377: undefined reference to `_hex_value'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(tekhex.o): In function `tekhex_init':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/tekhex.c:213: undefined reference to `hex_init'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(tekhex.o): In function `pass_over':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/tekhex.c:540: undefined reference to `_hex_value'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(tekhex.o): In function `tekhex_object_p':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/tekhex.c:614: undefined reference to `_hex_value'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(verilog.o): In function `verilog_init':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/verilog.c:269: undefined reference to `hex_init'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elf64-x86-64.o): In function `elf_x86_64_output_arch_local_syms':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elf64-x86-64.c:4464: undefined reference to `htab_traverse'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elfxx-x86.o): In function `elf_x86_link_hash_table_free':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfxx-x86.c:726: undefined reference to `htab_delete'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfxx-x86.c:728: undefined reference to `objalloc_free'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elfxx-x86.o): In function `_bfd_elf_x86_get_local_sym_hash':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfxx-x86.c:614: undefined reference to `htab_find_slot_with_hash'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfxx-x86.c:627: undefined reference to `_objalloc_alloc'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elfxx-x86.o): In function `_bfd_x86_elf_link_hash_table_create':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfxx-x86.c:811: undefined reference to `htab_try_create'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfxx-x86.c:815: undefined reference to `objalloc_create'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elfxx-x86.o): In function `_bfd_x86_elf_size_dynamic_sections':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfxx-x86.c:1043: undefined reference to `htab_traverse'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elf64.o): In function `_bfd_elf64_bfd_from_remote_memory':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfcode.h:1855: undefined reference to `xstrdup'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elf.o): In function `_bfd_elf_is_local_label_name':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elf.c:8634: undefined reference to `_sch_istable'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elf-eh-frame.o): In function `cie_compute_hash':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elf-eh-frame.c:261: undefined reference to `iterative_hash'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elf-eh-frame.c:262: undefined reference to `iterative_hash'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elf-eh-frame.c:263: undefined reference to `iterative_hash'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elf-eh-frame.c:264: undefined reference to `iterative_hash'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elf-eh-frame.c:265: undefined reference to `iterative_hash'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elf-eh-frame.o):/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elf-eh-frame.c:266: more undefined references to `iterative_hash' follow
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elf-eh-frame.o): In function `find_merged_cie':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elf-eh-frame.c:1301: undefined reference to `htab_find_slot_with_hash'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elf-eh-frame.c:1297: undefined reference to `htab_try_create'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elf-eh-frame.o): In function `_bfd_elf_discard_section_eh_frame_hdr':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elf-eh-frame.c:1624: undefined reference to `htab_delete'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elf32-i386.o): In function `elf_i386_output_arch_local_syms':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elf32-i386.c:4121: undefined reference to `htab_traverse'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elf32.o): In function `_bfd_elf32_bfd_from_remote_memory':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfcode.h:1855: undefined reference to `xstrdup'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(aout32.o): In function `aout_link_write_symbols':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/aoutx.h:5206: undefined reference to `_sch_istable'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(peigen.o): In function `_bfd_pei_write_codeview_record':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/peigen.c:1210: undefined reference to `xmalloc'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(cofflink.o): In function `coff_link_add_symbols':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/cofflink.c:534: undefined reference to `_sch_istable'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(pex64igen.o): In function `_bfd_pex64i_write_codeview_record':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/pex64igen.c:1210: undefined reference to `xmalloc'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elf64-aarch64.o): In function `elf64_aarch64_link_hash_table_free':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfnn-aarch64.c:2558: undefined reference to `htab_delete'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfnn-aarch64.c:2560: undefined reference to `objalloc_free'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elf64-aarch64.o): In function `elf64_aarch64_link_hash_table_create':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfnn-aarch64.c:2598: undefined reference to `htab_try_create'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfnn-aarch64.c:2602: undefined reference to `objalloc_create'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elf64-aarch64.o): In function `elf64_aarch64_finish_dynamic_sections':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfnn-aarch64.c:9218: undefined reference to `htab_traverse'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elf64-aarch64.o): In function `elf64_aarch64_get_local_sym_hash':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfnn-aarch64.c:2467: undefined reference to `htab_find_slot_with_hash'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfnn-aarch64.c:2480: undefined reference to `_objalloc_alloc'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elf64-aarch64.o): In function `elf64_aarch64_size_dynamic_sections':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfnn-aarch64.c:8479: undefined reference to `htab_traverse'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfnn-aarch64.c:8484: undefined reference to `htab_traverse'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elf32-aarch64.o): In function `elf32_aarch64_link_hash_table_free':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfnn-aarch64.c:2558: undefined reference to `htab_delete'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfnn-aarch64.c:2560: undefined reference to `objalloc_free'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elf32-aarch64.o): In function `elf32_aarch64_link_hash_table_create':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfnn-aarch64.c:2598: undefined reference to `htab_try_create'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfnn-aarch64.c:2602: undefined reference to `objalloc_create'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elf32-aarch64.o): In function `elf32_aarch64_finish_dynamic_sections':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfnn-aarch64.c:9218: undefined reference to `htab_traverse'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elf32-aarch64.o): In function `elf32_aarch64_get_local_sym_hash':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfnn-aarch64.c:2467: undefined reference to `htab_find_slot_with_hash'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfnn-aarch64.c:2480: undefined reference to `_objalloc_alloc'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elf32-aarch64.o): In function `elf32_aarch64_size_dynamic_sections':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfnn-aarch64.c:8479: undefined reference to `htab_traverse'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfnn-aarch64.c:8484: undefined reference to `htab_traverse'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(ecofflink.o): In function `add_file_shuffle':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/ecofflink.c:407: undefined reference to `_objalloc_alloc'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(ecofflink.o): In function `add_memory_shuffle':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/ecofflink.c:440: undefined reference to `_objalloc_alloc'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(ecofflink.o): In function `bfd_ecoff_debug_init':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/ecofflink.c:509: undefined reference to `objalloc_create'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(ecofflink.o): In function `bfd_ecoff_debug_free':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/ecofflink.c:535: undefined reference to `objalloc_free'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(ecofflink.o): In function `bfd_ecoff_debug_accumulate':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/ecofflink.c:637: undefined reference to `_objalloc_alloc'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/ecofflink.c:776: undefined reference to `_objalloc_alloc'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/ecofflink.c:738: undefined reference to `_objalloc_alloc'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/ecofflink.c:961: undefined reference to `_objalloc_alloc'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/ecofflink.c:985: undefined reference to `_objalloc_alloc'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(ecofflink.o):/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/ecofflink.c:1158: more undefined references to `_objalloc_alloc' follow
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elf64-hppa.o): In function `elf64_hppa_finalize_opd':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elf64-hppa.c:2206: undefined reference to `concat'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elf64-hppa.o): In function `allocate_global_data_opd':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elf64-hppa.c:1096: undefined reference to `concat'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elf64-ia64.o): In function `elf64_ia64_dyn_sym_traverse':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/elf64-ia64.c:1535: undefined reference to `htab_traverse'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elf64-ia64.o): In function `elf64_ia64_link_hash_table_free':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/elf64-ia64.c:1432: undefined reference to `htab_traverse'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/elf64-ia64.c:1434: undefined reference to `htab_delete'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/elf64-ia64.c:1437: undefined reference to `objalloc_free'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elf64-ia64.o): In function `elf64_ia64_hash_table_create':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/elf64-ia64.c:1465: undefined reference to `htab_try_create'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/elf64-ia64.c:1467: undefined reference to `objalloc_create'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elf64-ia64.o): In function `get_local_sym_hash':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/elf64-ia64.c:1593: undefined reference to `htab_find_slot_with_hash'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/elf64-ia64.c:1603: undefined reference to `_objalloc_alloc'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(pepigen.o): In function `_bfd_pepi_write_codeview_record':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/pepigen.c:1210: undefined reference to `xmalloc'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elf32-m68k.o): In function `elf_m68k_clear_got':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elf32-m68k.c:1369: undefined reference to `htab_delete'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elf32-m68k.o): In function `elf_m68k_finalize_got_offsets':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elf32-m68k.c:2170: undefined reference to `htab_traverse'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elf32-m68k.o): In function `elf_m68k_link_hash_table_free':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elf32-m68k.c:958: undefined reference to `htab_delete'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elf32-m68k.o): In function `elf_m68k_get_bfd2got_entry':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elf32-m68k.c:1749: undefined reference to `htab_find_slot'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elf32-m68k.c:1738: undefined reference to `htab_try_create'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elf32-m68k.c:1749: undefined reference to `htab_find_slot'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elf32-m68k.o): In function `elf_m68k_get_got_entry':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elf32-m68k.c:1518: undefined reference to `htab_find_slot'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elf32-m68k.c:1506: undefined reference to `htab_try_create'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elf32-m68k.c:1518: undefined reference to `htab_find_slot'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elf32-m68k.o): In function `elf_m68k_partition_multi_got':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elf32-m68k.c:2394: undefined reference to `htab_traverse'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elf32-m68k.o): In function `elf_m68k_can_merge_gots':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elf32-m68k.c:1886: undefined reference to `htab_traverse_noresize'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elf32-m68k.o): In function `elf_m68k_clear_got':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elf32-m68k.c:1369: undefined reference to `htab_delete'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elf32-m68k.c:1369: undefined reference to `htab_delete'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elf32-m68k.c:1369: undefined reference to `htab_delete'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elf32-m68k.o): In function `elf_m68k_merge_gots':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elf32-m68k.c:1960: undefined reference to `htab_traverse_noresize'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elfxx-mips.o): In function `mips_elf_create_got_info':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfxx-mips.c:3129: undefined reference to `htab_try_create'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfxx-mips.c:3134: undefined reference to `htab_try_create'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elfxx-mips.o): In function `mips_elf_add_got_page_entry':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfxx-mips.c:4539: undefined reference to `htab_find_slot'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elfxx-mips.o): In function `mips_elf_resolve_final_got_entries':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfxx-mips.c:4401: undefined reference to `htab_traverse'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfxx-mips.c:4405: undefined reference to `htab_size'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfxx-mips.c:4405: undefined reference to `htab_create'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfxx-mips.c:4411: undefined reference to `htab_traverse'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfxx-mips.c:4415: undefined reference to `htab_delete'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfxx-mips.c:4418: undefined reference to `htab_try_create'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfxx-mips.c:4425: undefined reference to `htab_traverse'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elfxx-mips.o): In function `mips_elf_create_local_got_entry':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfxx-mips.c:3732: undefined reference to `htab_find'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfxx-mips.c:3744: undefined reference to `htab_find_slot'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elfxx-mips.o): In function `mips_elf_add_got_entry':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfxx-mips.c:4513: undefined reference to `htab_find_slot'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elfxx-mips.o): In function `mips_elf_recreate_got':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfxx-mips.c:4181: undefined reference to `htab_find_slot'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elfxx-mips.o): In function `mips_elf_record_got_page_entry':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfxx-mips.c:4227: undefined reference to `htab_find_slot'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elfxx-mips.o): In function `mips_elf_record_got_entry':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfxx-mips.c:3926: undefined reference to `htab_find_slot'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elfxx-mips.o):/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfxx-mips.c:3949: more undefined references to `htab_find_slot' follow
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elfxx-mips.o): In function `mips_elf_replace_bfd_got':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfxx-mips.c:3172: undefined reference to `htab_delete'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfxx-mips.c:3173: undefined reference to `htab_delete'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfxx-mips.c:3175: undefined reference to `htab_delete'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elfxx-mips.o): In function `mips_elf_merge_got_with':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfxx-mips.c:4592: undefined reference to `htab_traverse'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfxx-mips.c:4596: undefined reference to `htab_traverse'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elfxx-mips.o): In function `mips_elf_create_stub_symbol':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfxx-mips.c:1591: undefined reference to `concat'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elfxx-mips.o): In function `mips_elf_create_shadow_symbol':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfxx-mips.c:1633: undefined reference to `concat'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elfxx-mips.o): In function `mips_elf_add_la25_stub':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfxx-mips.c:1946: undefined reference to `htab_find_slot'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elfxx-mips.o): In function `mips_elf_add_la25_intro':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfxx-mips.c:1859: undefined reference to `htab_elements'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elfxx-mips.o): In function `_bfd_mips_elf_init_stubs':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfxx-mips.c:1790: undefined reference to `htab_try_create'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elfxx-mips.o): In function `mips_elf_record_got_page_ref':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfxx-mips.c:4060: undefined reference to `htab_find_slot'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfxx-mips.c:4080: undefined reference to `htab_find_slot'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elfxx-mips.o): In function `mips_elf_lay_out_got':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfxx-mips.c:9408: undefined reference to `htab_traverse'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elfxx-mips.o): In function `mips_elf_multi_got':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfxx-mips.c:4888: undefined reference to `htab_traverse'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfxx-mips.c:4890: undefined reference to `htab_traverse'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfxx-mips.c:4934: undefined reference to `htab_traverse'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfxx-mips.c:4945: undefined reference to `htab_traverse'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elfxx-mips.o):/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfxx-mips.c:4963: more undefined references to `htab_traverse' follow
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elfxx-mips.o): In function `mips_elf_global_got_index':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfxx-mips.c:3581: undefined reference to `htab_find'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elfxx-mips.o): In function `_bfd_mips_elf_finish_dynamic_symbol':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfxx-mips.c:10906: undefined reference to `htab_find'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elfxx-mips.o): In function `_bfd_mips_elf_final_link':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfxx-mips.c:14246: undefined reference to `htab_traverse'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(ppcboot.o): In function `mangle_name':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/ppcboot.c:263: undefined reference to `_sch_istable'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elf64-riscv.o): In function `riscv_record_pcrel_hi_reloc':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfnn-riscv.c:1604: undefined reference to `htab_find_slot'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elf64-riscv.o): In function `riscv_init_pcrel_relocs':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfnn-riscv.c:1539: undefined reference to `htab_create'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elf64-riscv.o): In function `riscv_resolve_pcrel_lo_relocs':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfnn-riscv.c:1645: undefined reference to `htab_find'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elf64-riscv.o): In function `riscv_free_pcrel_relocs':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfnn-riscv.c:1556: undefined reference to `htab_delete'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elf32-riscv.o): In function `riscv_record_pcrel_hi_reloc':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfnn-riscv.c:1604: undefined reference to `htab_find_slot'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elf32-riscv.o): In function `riscv_init_pcrel_relocs':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfnn-riscv.c:1539: undefined reference to `htab_create'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elf32-riscv.o): In function `riscv_resolve_pcrel_lo_relocs':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfnn-riscv.c:1645: undefined reference to `htab_find'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elf32-riscv.o): In function `riscv_free_pcrel_relocs':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfnn-riscv.c:1556: undefined reference to `htab_delete'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elfxx-sparc.o): In function `_bfd_sparc_elf_link_hash_table_free':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfxx-sparc.c:1117: undefined reference to `htab_delete'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfxx-sparc.c:1119: undefined reference to `objalloc_free'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elfxx-sparc.o): In function `elf_sparc_get_local_sym_hash':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfxx-sparc.c:1080: undefined reference to `htab_find_slot_with_hash'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfxx-sparc.c:1093: undefined reference to `_objalloc_alloc'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elfxx-sparc.o): In function `_bfd_sparc_elf_link_hash_table_create':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfxx-sparc.c:1182: undefined reference to `htab_try_create'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfxx-sparc.c:1186: undefined reference to `objalloc_create'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elfxx-sparc.o): In function `_bfd_sparc_elf_size_dynamic_sections':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfxx-sparc.c:2604: undefined reference to `htab_traverse'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elfxx-sparc.o): In function `_bfd_sparc_elf_finish_dynamic_sections':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elfxx-sparc.c:4873: undefined reference to `htab_traverse'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(mach-o.o): In function `bfd_mach_o_fat_member_init':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/mach-o.c:5249: undefined reference to `xstrdup'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/mach-o.c:5255: undefined reference to `xmalloc'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(mach-o.o): In function `bfd_mach_o_follow_dsym':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/mach-o.c:5734: undefined reference to `lbasename'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(pef.o): In function `bfd_pef_parse_traceback_table':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/pef.c:186: undefined reference to `_sch_istable'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(pef.o): In function `bfd_pef_print_symbol':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/pef.c:222: undefined reference to `xmalloc'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(pef.o): In function `bfd_pef_parse_function_stubs':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/pef.c:830: undefined reference to `_sch_istable'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elf32-spu.o): In function `spu_elf_auto_overlay':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elf32-spu.c:4686: undefined reference to `xexit'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elf32-spu.c:4329: undefined reference to `filename_cmp'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elf32-spu.c:4680: undefined reference to `xexit'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(elf32-spu.o): In function `sort_bfds':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/elf32-spu.c:4097: undefined reference to `filename_cmp'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(plugin.o): In function `try_load_plugin':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/plugin.c:219: undefined reference to `dlopen'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/plugin.c:226: undefined reference to `dlsym'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/plugin.c:222: undefined reference to `dlerror'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(plugin.o): In function `load_plugin':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/plugin.c:338: undefined reference to `concat'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/plugin.c:339: undefined reference to `make_relative_prefix'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/plugin.c:355: undefined reference to `concat'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(archive.o): In function `adjust_relative_path':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/archive.c:1471: undefined reference to `getpwd'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/archive.c:1475: undefined reference to `lrealpath'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/archive.c:1478: undefined reference to `lrealpath'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/archive.c:1492: undefined reference to `filename_ncmp'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(archive.o): In function `_bfd_look_for_bfd_in_cache':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/archive.c:311: undefined reference to `htab_find'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(archive.o): In function `_bfd_add_bfd_to_archive_cache':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/archive.c:372: undefined reference to `htab_find_slot'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/archive.c:361: undefined reference to `htab_create_alloc'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(archive.o): In function `_bfd_generic_read_ar_hdr_mag':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/archive.c:537: undefined reference to `_sch_istable'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(archive.o): In function `_bfd_append_relative_path':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/archive.c:623: undefined reference to `lbasename'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(archive.o): In function `find_nested_archive':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/archive.c:406: undefined reference to `filename_cmp'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/archive.c:416: undefined reference to `filename_cmp'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(archive.o): In function `_bfd_get_elt_at_filepos':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/archive.c:724: undefined reference to `xstrdup'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(archive.o): In function `_bfd_construct_extended_name_table':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/archive.c:1634: undefined reference to `filename_cmp'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(archive.o): In function `normalize':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/archive.c:1432: undefined reference to `lbasename'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(archive.o): In function `_bfd_construct_extended_name_table':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/archive.c:1680: undefined reference to `filename_ncmp'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/archive.c:1680: undefined reference to `filename_ncmp'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/archive.c:1728: undefined reference to `filename_cmp'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(archive.o): In function `normalize':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/archive.c:1432: undefined reference to `lbasename'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/archive.c:1432: undefined reference to `lbasename'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(archive.o): In function `_bfd_bsd44_write_ar_hdr':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/archive.c:1852: undefined reference to `_sch_istable'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(archive.o): In function `normalize':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/archive.c:1432: undefined reference to `lbasename'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(archive.o): In function `bfd_bsd_truncate_arname':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/archive.c:2103: undefined reference to `lbasename'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(archive.o): In function `normalize':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/archive.c:1432: undefined reference to `lbasename'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(archive.o): In function `bfd_gnu_truncate_arname':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/archive.c:2135: undefined reference to `lbasename'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(archive.o): In function `_bfd_archive_close_and_cleanup':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/archive.c:2881: undefined reference to `htab_find_slot'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/archive.c:2885: undefined reference to `htab_clear_slot'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/archive.c:2865: undefined reference to `htab_traverse_noresize'
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/archive.c:2866: undefined reference to `htab_delete'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(archures.o): In function `bfd_default_scan':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/archures.c:1184: undefined reference to `_sch_istable'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(cache.o): In function `bfd_open_file':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/cache.c:649: undefined reference to `unlink_if_ordinary'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(compress.o): In function `bfd_is_section_compressed_with_header':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/compress.c:423: undefined reference to `_sch_istable'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(corefile.o): In function `generic_core_file_matches_executable_p':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/corefile.c:188: undefined reference to `filename_cmp'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/libbfd.a(stabs.o): In function `_bfd_link_section_stabs':
/home/abuild/rpmbuild/BUILD/binutils-2.30/build-dir/bfd/../../bfd/stabs.c:352: undefined reference to `_sch_istable'
collect2: error: ld returned 1 exit status

And then I'm stuck.

Any hints?

Support for MachO

Just found this project and it is pretty awesome, would be great if it could also support MachO binaries too!

ls.so: ELF file's phentsize not the expected size

# wcc -c /bin/ls -s  -o ls.so
# wld -libify ls.so
# python3.6
>>> from ctypes import *
>>> cdll.LoadLibrary("ls.so")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.6/ctypes/__init__.py", line 426, in LoadLibrary
    return self._dlltype(name)
  File "/usr/local/lib/python3.6/ctypes/__init__.py", line 348, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: ls.so: ELF file's phentsize not the expected size

Different bug with the other mechanism:

# wcc -c /bin/ls -o ls.o
# gcc -o ls.so ls.o -shared
>>> cdll.LoadLibrary("ls.so")
python3.6: Symbol `stdout' causes overflow in R_X86_64_PC32 relocation
...
python3.6: Symbol `stderr' causes overflow in R_X86_64_PC32 relocation
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.6/ctypes/__init__.py", line 426, in LoadLibrary
    return self._dlltype(name)
  File "/usr/local/lib/python3.6/ctypes/__init__.py", line 348, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: ls.so: undefined symbol: fgetfilecon
>>> 

Not specific to ls.so. Run on 4.14.13, with various mods. Happens in a Jessie container, so could be kernel related.

conditional return in void function causes wcc to expect the function to end

in the following void function, i attempt to return early if the string is empty. this caused the compiler to expect the function to end and throw a missing '}' error:

37 void _cdecl printf_tt(char* str, ...)
 38 {
 39     if (!str[0])
 40         return;
 41 
 42     void* argv = &str + sizeof(str);        // Use stack manipulation to find arg array
 43     // function continues here...

stdio.c(42): Error! E1077: Missing '}'
stdio.c(42): Error! E1011: Symbol 'str' has not been declared`

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.