[Numpy-discussion] "Symbol table not found" compiling numpy from git repository on Windows

Ondřej Čertík ondrej.certik at gmail.com
Wed Jul 18 06:30:08 EDT 2012


On Wed, Jul 18, 2012 at 2:20 AM, Ondřej Čertík <ondrej.certik at gmail.com> wrote:
> On Thu, Jan 5, 2012 at 8:22 PM, John Salvatier
> <jsalvati at u.washington.edu> wrote:
>> Hello,
>>
>> I'm trying to compile numpy on Windows 7 using the command: "python setup.py
>> config --compiler=mingw32 build" but I get an error about a symbol table not
>> found. Anyone know how to work around this or what to look into?
>>
>> building library "npymath" sources
>> Building msvcr library: "C:\Python26\libs\libmsvcr90.a" (from
>> C:\Windows\winsxs\amd64_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.21022.8_none_750b37ff97f4f68b\msvcr90.dll)
>> objdump.exe:
>> C:\Windows\winsxs\amd64_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.21022.8_none_750b37ff97f4f68b\msvcr90.dll:
>> File format not recognized
>> Traceback (most recent call last):
>>   File "setup.py", line 214, in <module>
>>     setup_package()
>>   File "setup.py", line 207, in setup_package
>>     configuration=configuration )
>>   File "C:\Users\jsalvatier\workspace\numpy\numpy\distutils\core.py", line
>> 186, in setup
>>     return old_setup(**new_attr)
>>   File "C:\Python26\lib\distutils\core.py", line 152, in setup
>>     dist.run_commands()
>>   File "C:\Python26\lib\distutils\dist.py", line 975, in run_commands
>>     self.run_command(cmd)
>>   File "C:\Python26\lib\distutils\dist.py", line 995, in run_command
>>     cmd_obj.run()
>>   File
>> "C:\Users\jsalvatier\workspace\numpy\numpy\distutils\command\build.py", line
>> 37, in run
>>     old_build.run(self)
>>   File "C:\Python26\lib\distutils\command\build.py", line 134, in run
>>     self.run_command(cmd_name)
>>   File "C:\Python26\lib\distutils\cmd.py", line 333, in run_command
>>     self.distribution.run_command(command)
>>   File "C:\Python26\lib\distutils\dist.py", line 995, in run_command
>>     cmd_obj.run()
>>   File
>> "C:\Users\jsalvatier\workspace\numpy\numpy\distutils\command\build_src.py",
>> line 152, in run
>>     self.build_sources()
>>   File
>> "C:\Users\jsalvatier\workspace\numpy\numpy\distutils\command\build_src.py",
>> line 163, in build_sources
>>     self.build_library_sources(*libname_info)
>>   File
>> "C:\Users\jsalvatier\workspace\numpy\numpy\distutils\command\build_src.py",
>> line 298, in build_library_sources
>>     sources = self.generate_sources(sources, (lib_name, build_info))
>>   File
>> "C:\Users\jsalvatier\workspace\numpy\numpy\distutils\command\build_src.py",
>> line 385, in generate_sources
>>     source = func(extension, build_dir)
>>   File "numpy\core\setup.py", line 646, in get_mathlib_info
>>     st = config_cmd.try_link('int main(void) { return 0;}')
>>   File "C:\Python26\lib\distutils\command\config.py", line 257, in try_link
>>     self._check_compiler()
>>   File
>> "C:\Users\jsalvatier\workspace\numpy\numpy\distutils\command\config.py",
>> line 45, in _check_compiler
>>     old_config._check_compiler(self)
>>   File "C:\Python26\lib\distutils\command\config.py", line 107, in
>> _check_compiler
>>     dry_run=self.dry_run, force=1)
>>   File "C:\Users\jsalvatier\workspace\numpy\numpy\distutils\ccompiler.py",
>> line 560, in new_compiler
>>     compiler = klass(None, dry_run, force)
>>   File
>> "C:\Users\jsalvatier\workspace\numpy\numpy\distutils\mingw32ccompiler.py",
>> line 94, in __init__
>>     msvcr_success = build_msvcr_library()
>>   File
>> "C:\Users\jsalvatier\workspace\numpy\numpy\distutils\mingw32ccompiler.py",
>> line 362, in build_msvcr_library
>>     generate_def(dll_file, def_file)
>>   File
>> "C:\Users\jsalvatier\workspace\numpy\numpy\distutils\mingw32ccompiler.py",
>> line 282, in generate_def
>>     raise ValueError("Symbol table not found")
>> ValueError: Symbol table not found
>
>
> Did you find a workaround? I am having exactly the same problem.

So this happens both in Windows and in Wine and the problem is that
the numpy distutils is trying to read the symbol table using "objdump"
from msvcr90.dll but it can't recognize the format:

objdump.exe: C:\windows\winsxs\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.4148_none_deadbeef\msvcr90.dll:
File format not recognized

The file exists:


$ file ~/.wine/drive_c/windows/winsxs/x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.4148_none_deadbeef/msvcr90.dll
/home/ondrej/.wine/drive_c/windows/winsxs/x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.4148_none_deadbeef/msvcr90.dll:
PE32 executable for MS Windows (DLL) (unknown subsystem) Intel 80386
32-bit


But objdump doesn't work on it.

Ondrej



More information about the NumPy-Discussion mailing list