[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