Skip to content
This repository has been archived by the owner on Oct 16, 2022. It is now read-only.

Many Bento/examples are broken #116

Open
pchanial opened this issue Jul 2, 2012 · 5 comments
Open

Many Bento/examples are broken #116

pchanial opened this issue Jul 2, 2012 · 5 comments
Milestone

Comments

@pchanial
Copy link

pchanial commented Jul 2, 2012

Assuming my Bento installation is working, the following examples fail (0.1.x branch):

simples/conditional:

bentomaker: Error: bentomaker crashed (uncaught exception <class 'yaku.errors.TaskRunFailure'>: Command failed. Error was: 
    /usr/bin/ld: src/hellomodule.c.o: relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
src/hellomodule.c.o: could not read symbols: Bad value
collect2: ld returned 1 exit status
command line was
    'gcc -shared -o /home/pchanial/software/src/Bento/examples/simples/conditional/build/hello/_bar.so src/hellomodule.c.o -g').

simples/single_extension:
after applying this patch:

--- a/examples/simples/single_extension/bscript
+++ b/examples/simples/single_extension/bscript
@@ -1,6 +1,5 @@
 import os
-
-from bento.commands.context \
+from bento.backends.distutils_backend \
     import \
         DistutilsBuildContext, DistutilsConfigureContext

bentomaker fails with the same error message as above

simples/single_extension_waf: "bentomaker configure" fails with

Could not import hook file '/home/pchanial/software/src/Bento/examples/simples/single_extension_waf/bscript': caught exception ImportError('No module named extras.waf',)
Original traceback (most recent call last)
  File "/home/pchanial/software/lib/python2.7/site-packages/bento/commands/hooks.py", line 208, in create_hook_module
    exec(compile(code, main_file, 'exec'), module.__dict__)
  File "/home/pchanial/software/src/Bento/examples/simples/single_extension_waf/bscript", line 6, in <module>
    from bento.commands.extras.waf \

hooks/waf/waf16:

Could not import hook file '/home/pchanial/software/src/Bento/examples/hooks/waf/waf16/bscript': caught exception ImportError('cannot import name override',)
Original traceback (most recent call last)
  File "/home/pchanial/software/lib/python2.7/site-packages/bento/commands/hooks.py", line 208, in create_hook_module
    exec(compile(code, main_file, 'exec'), module.__dict__)
  File "/home/pchanial/software/src/Bento/examples/hooks/waf/waf16/bscript", line 5, in <module>
    from bento.commands.hooks \

hooks/simple: "bentomaker test" fails:

Could not import hook file '/home/pchanial/software/src/Bento/examples/hooks/simple/bscript': caught exception ImportError('No module named utils',)
Original traceback (most recent call last)
  File "/home/pchanial/software/lib/python2.7/site-packages/bento/commands/hooks.py", line 208, in create_hook_module
    exec(compile(code, main_file, 'exec'), module.__dict__)
  File "/home/pchanial/software/src/Bento/examples/hooks/simple/bscript", line 3, in <module>
    from bento.core.utils import pprint

The following work:

simples/single_module

simples/single_package

I haven't tried the other examples.

@cournape
Copy link
Owner

Hi Pierre,

All the examples should be fixed now in master

David

On Mon, Jul 2, 2012 at 1:27 PM, Pierre Chanial
[email protected]
wrote:

Assuming my Bento installation is working, the following examples fail (0.1.x branch):

simples/conditional:

bentomaker: Error: bentomaker crashed (uncaught exception <class 'yaku.errors.TaskRunFailure'>: Command failed. Error was:
        /usr/bin/ld: src/hellomodule.c.o: relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
src/hellomodule.c.o: could not read symbols: Bad value
collect2: ld returned 1 exit status
command line was
        'gcc -shared -o /home/pchanial/software/src/Bento/examples/simples/conditional/build/hello/_bar.so src/hellomodule.c.o -g').

simples/single_extension:
after applying this patch:

--- a/examples/simples/single_extension/bscript
+++ b/examples/simples/single_extension/bscript
@@ -1,6 +1,5 @@
 import os
-
-from bento.commands.context \
+from bento.backends.distutils_backend \
     import \
         DistutilsBuildContext, DistutilsConfigureContext

bentomaker fails with the same error message as above

simples/single_extension_waf: "bentomaker configure" fails with

Could not import hook file '/home/pchanial/software/src/Bento/examples/simples/single_extension_waf/bscript': caught exception ImportError('No module named extras.waf',)
Original traceback (most recent call last)
  File "/home/pchanial/software/lib/python2.7/site-packages/bento/commands/hooks.py", line 208, in create_hook_module
    exec(compile(code, main_file, 'exec'), module.__dict__)
  File "/home/pchanial/software/src/Bento/examples/simples/single_extension_waf/bscript", line 6, in <module>
    from bento.commands.extras.waf \

hooks/waf/waf16:

Could not import hook file '/home/pchanial/software/src/Bento/examples/hooks/waf/waf16/bscript': caught exception ImportError('cannot import name override',)
Original traceback (most recent call last)
  File "/home/pchanial/software/lib/python2.7/site-packages/bento/commands/hooks.py", line 208, in create_hook_module
    exec(compile(code, main_file, 'exec'), module.__dict__)
  File "/home/pchanial/software/src/Bento/examples/hooks/waf/waf16/bscript", line 5, in <module>
    from bento.commands.hooks \

hooks/simple: "bentomaker test" fails:

Could not import hook file '/home/pchanial/software/src/Bento/examples/hooks/simple/bscript': caught exception ImportError('No module named utils',)
Original traceback (most recent call last)
  File "/home/pchanial/software/lib/python2.7/site-packages/bento/commands/hooks.py", line 208, in create_hook_module
    exec(compile(code, main_file, 'exec'), module.__dict__)
  File "/home/pchanial/software/src/Bento/examples/hooks/simple/bscript", line 3, in <module>
    from bento.core.utils import pprint

The following work:

simples/single_module

simples/single_package

I haven't tried the other examples.


Reply to this email directly or view it on GitHub:
#116

@pchanial
Copy link
Author

Nice way to declare a command with a decorator.
It looks odd though to have to pick up pprint from bento.utils.utils instead of bento.utils
There are still a couple of failures, when running check_examples.py

installing bentomaker in current directory
installing bentomaker-2.7 in current directory
=============== testing examples/customizations/new_builder ==============
Succeeded
=============== testing examples/simples/single_extension_waf ==============
Succeeded
=============== testing examples/simples/conditional ==============
bentomaker: Error: bentomaker crashed (uncaught exception <class 'yaku.errors.TaskRunFailure'>: Command failed. Error was: 
    /usr/bin/ld: src/hellomodule.c.o: relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
src/hellomodule.c.o: could not read symbols: Bad value
collect2: ld returned 1 exit status
command line was
    'gcc -shared -o /home/pchanial/software/src/Bento/examples/simples/conditional/build/hello/_bar.so src/hellomodule.c.o -g').
Please report this on bento issue tracker:
    http://github.com/cournape/bento/issues
You can get a full traceback by setting BENTOMAKER_DEBUG=1
Looking for gcc (c compiler) ... yes
Checking whether gcc can build objects... yes
Checking whether gcc can build programs... yes
Checking whether gcc can build static libraries... yes
Checking whether gcc can link static libraries to exe... yes
Checking whether gcc can build shared libraries... yes
Checking whether gcc can link shared libraries to exe... yes
Detecting distutils CC exec ... gcc
Detecting CC type... gcc
Detecting distutils CXX exec ... g++ -pthread
Detecting CC type... gcc
Checking whether default can build python object code... yes
Checking whether default can build python extension... yes
PYCC            ../src/hellomodule.c
PYLINK          src/hellomodule.c.o

Failed
=============== testing examples/simples/executable ==============
Succeeded
=============== testing examples/simples/single_extension ==============
Succeeded
=============== testing examples/simples/single_module ==============
Succeeded
=============== testing examples/simples/single_package ==============
Succeeded
=============== testing examples/simples/datafiles ==============
Succeeded
=============== testing examples/simples/config_py ==============
Succeeded
=============== testing examples/hooks/simple ==============
Succeeded
=============== testing examples/hooks/customization ==============
Looking for cython... yes
warning: /home/pchanial/software/src/Bento/examples/hooks/customization/src/heap.pyx:38:0: 'stdlib' is deprecated, use 'libc.stdlib'
bentomaker: Error: bentomaker crashed (uncaught exception <class 'yaku.errors.TaskRunFailure'>: Command failed. Error was: 
    /usr/bin/ld: src/hellomodule.c.o: relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
src/hellomodule.c.o: could not read symbols: Bad value
collect2: ld returned 1 exit status
command line was
    'gcc -shared -o /home/pchanial/software/src/Bento/examples/hooks/customization/build/hello/_bar.so src/hellomodule.c.o -g').
Please report this on bento issue tracker:
    http://github.com/cournape/bento/issues
You can get a full traceback by setting BENTOMAKER_DEBUG=1
Looking for gcc (c compiler) ... yes
Checking whether gcc can build objects... yes
Checking whether gcc can build programs... yes
Checking whether gcc can build static libraries... yes
Checking whether gcc can link static libraries to exe... yes
Checking whether gcc can build shared libraries... yes
Checking whether gcc can link shared libraries to exe... yes
Detecting distutils CC exec ... gcc
Detecting CC type... gcc
Detecting distutils CXX exec ... g++ -pthread
Detecting CC type... gcc
Checking whether default can build python object code... yes
Checking whether default can build python extension... yes
CYTHON          ../src/heap.pyx
PYCC            ../src/hellomodule.c
PYCC            src/heap.c
PYLINK          src/hellomodule.c.o

Failed
=============== testing examples/hooks/distutils ==============
Succeeded
=============== testing examples/recursive/simple ==============
bentomaker: Error: bentomaker crashed (uncaught exception <class 'yaku.errors.TaskRunFailure'>: Command failed. Error was: 
    /usr/bin/ld: src/hellomodule.c.o: relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
src/hellomodule.c.o: could not read symbols: Bad value
collect2: ld returned 1 exit status
command line was
    'gcc -shared -o /home/pchanial/software/src/Bento/examples/recursive/simple/build/_top.so src/hellomodule.c.o -g').
Please report this on bento issue tracker:
    http://github.com/cournape/bento/issues
You can get a full traceback by setting BENTOMAKER_DEBUG=1
Top extensions: _top
All extensions: _top, foo._bottom, bar._bottom2
Local extensions for bar: _bottom2
Looking for gcc (c compiler) ... yes
Checking whether gcc can build objects... yes
Checking whether gcc can build programs... yes
Checking whether gcc can build static libraries... yes
Checking whether gcc can link static libraries to exe... yes
Checking whether gcc can build shared libraries... yes
Checking whether gcc can link shared libraries to exe... yes
Detecting distutils CC exec ... gcc
Detecting CC type... gcc
Detecting distutils CXX exec ... g++ -pthread
Detecting CC type... gcc
Checking whether default can build python object code... yes
Checking whether default can build python extension... yes
PYCC            ../src/hellomodule.c
PYCC            ../foo/src/hellomodule.c
PYCC            ../bar/src/hellomodule.c
PYLINK          src/hellomodule.c.o

Failed
=============== testing examples/recursive/deep ==============
Traceback (most recent call last):
  File "check_examples.py", line 51, in <module>
    if not test_package(test):
  File "check_examples.py", line 40, in test_package
    if _run():
  File "check_examples.py", line 32, in _run
    print(p.stdout.read().decode())
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 35: ordinal not in range(128)

@cournape
Copy link
Owner

I don't understand why I don't get udpates on bento issues.

Anyway, the build-related errors are caused by the internal build tool yaku that I am hoping to scrape completely soon. The decode issue keeps telling me I need to learn about this thing called unicode and to handle it correctly :)

@jseabold
Copy link

I found this issue after I received the same error about using -fPIC trying to build numpy. This is with current bento master. User error?

simples/conditional

$ bentomaker configure
...
$ bentomaker build
Looking for gcc (c compiler) ... yes
Checking whether gcc can build objects... yes
Checking whether gcc can build programs... yes
Checking whether gcc can build static libraries... yes                          
Checking whether gcc can link static libraries to exe... yes                    
Checking whether gcc can build shared libraries... yes                          
Checking whether gcc can link shared libraries to exe... yes                    
Detecting distutils CC exec ... gcc
Detecting CC type... gcc
Detecting distutils CXX exec ... g++ -pthread
Detecting CC type... gcc
Checking whether default can build python object code... yes
Checking whether default can build python extension... yes
PYCC            ../src/hellomodule.c
PYLINK          src/hellomodule.c.o
bentomaker: Error: bentomaker crashed (uncaught exception <class 'yaku.errors.TaskRunFailure'>: Command failed. Error was: 
        /usr/bin/ld: src/hellomodule.c.o: relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
src/hellomodule.c.o: could not read symbols: Bad value
collect2: error: ld returned 1 exit status
command line was
        'gcc -shared -o /home/skipper/src/bento/examples/simples/conditional/build/hello/_bar.so src/hellomodule.c.o -Wl,-Bsymbolic-functions -Wl,-z,relro').
Please report this on bento issue tracker:
    http://github.com/cournape/bento/issues
You can get a full traceback by setting BENTOMAKER_DEBUG=1

@jseabold
Copy link

For completeness the whole check_examples

|18 $ python check_examples.py 
installing bentomaker in current directory
installing bentomaker-2.7 in current directory
=============== testing examples/build_customization ==============
Succeeded
=============== testing examples/hooks/simple ==============
Succeeded
=============== testing examples/hooks/customization ==============
Looking for cython... yes
bentomaker: Error: bentomaker crashed (uncaught exception <type 'exceptions.KeyError'>: 'PYTHONPATH').
Please report this on bento issue tracker:
    http://github.com/cournape/bento/issues
You can get a full traceback by setting BENTOMAKER_DEBUG=1
Looking for gcc (c compiler) ... yes
Checking whether gcc can build objects... yes
Checking whether gcc can build programs... yes
Checking whether gcc can build static libraries... yes
Checking whether gcc can link static libraries to exe... yes
Checking whether gcc can build shared libraries... yes
Checking whether gcc can link shared libraries to exe... yes
Detecting distutils CC exec ... gcc
Detecting CC type... gcc
Detecting distutils CXX exec ... g++ -pthread
Detecting CC type... gcc
Checking whether default can build python object code... yes
Checking whether default can build python extension... yes

Failed
=============== testing examples/hooks/distutils ==============
Succeeded
=============== testing examples/var_example ==============
bentomaker: Error: bentomaker crashed (uncaught exception <class 'yaku.errors.TaskRunFailure'>: Command failed. Error was: 
        /usr/bin/ld: _foo.c.o: relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
_foo.c.o: could not read symbols: Bad value
collect2: error: ld returned 1 exit status
command line was
        'gcc -shared -o /home/skipper/src/bento/examples/var_example/build/_foo.so _foo.c.o -Wl,-Bsymbolic-functions -Wl,-z,relro').
Please report this on bento issue tracker:
    http://github.com/cournape/bento/issues
You can get a full traceback by setting BENTOMAKER_DEBUG=1
Looking for gcc (c compiler) ... yes
Checking whether gcc can build objects... yes
Checking whether gcc can build programs... yes
Checking whether gcc can build static libraries... yes
Checking whether gcc can link static libraries to exe... yes
Checking whether gcc can build shared libraries... yes
Checking whether gcc can link shared libraries to exe... yes
Detecting distutils CC exec ... gcc
Detecting CC type... gcc
Detecting distutils CXX exec ... g++ -pthread
Detecting CC type... gcc
Checking whether default can build python object code... yes
Checking whether default can build python extension... yes
PYCC            ../_foo.c
PYLINK          _foo.c.o

Failed
=============== testing examples/customizations/new_builder ==============
Succeeded
=============== testing examples/recursive/deep ==============
../foo/bar2/src/foo.c: In function ‘foo’:
../foo/bar2/src/foo.c:3:1: warning: control reaches end of non-void function [-Wreturn-type]
bentomaker: Error: bentomaker crashed (uncaught exception <class 'yaku.errors.TaskRunFailure'>: Command failed. Error was: 
        /usr/bin/ld: src/hellomodule.c.o: relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
src/hellomodule.c.o: could not read symbols: Bad value
collect2: error: ld returned 1 exit status
command line was
        'gcc -shared -o /home/skipper/src/bento/examples/recursive/deep/build/foo/bar3/_hello.so src/hellomodule.c.o -Wl,-Bsymbolic-functions -Wl,-z,relro').
Please report this on bento issue tracker:
    http://github.com/cournape/bento/issues
You can get a full traceback by setting BENTOMAKER_DEBUG=1
Looking for gcc (c compiler) ... yes
Checking whether gcc can build objects... yes
Checking whether gcc can build programs... yes
Checking whether gcc can build static libraries... yes
Checking whether gcc can link static libraries to exe... yes
Checking whether gcc can build shared libraries... yes
Checking whether gcc can link shared libraries to exe... yes
Detecting distutils CC exec ... gcc
Detecting CC type... gcc
Detecting distutils CXX exec ... g++ -pthread
Detecting CC type... gcc
Checking whether default can build python object code... yes
Checking whether default can build python extension... yes
Configure: /home/skipper/src/bento/examples/recursive/deep/foo/bar2/fubar/bscript
Src dir is /home/skipper/src/bento/examples/recursive/deep/foo/bar2/fubar
Configure: /home/skipper/src/bento/examples/recursive/deep/foo/bar2/bscript
Configure: /home/skipper/src/bento/examples/recursive/deep/foo/bar1/bscript
PYCC            ../src/hellomodule.c
PYCC            ../foo/src/hellomodule.c
PYCC            ../foo/bar2/fubar/src/hellomodule.c
CC              ../foo/bar2/src/foo.c
CC_STLINK       foo/bar2/src/foo.c.o
PYLINK          src/hellomodule.c.o

Failed
=============== testing examples/recursive/simple ==============
../foo/src/hellomodule.c: In function ‘hello’:
../foo/src/hellomodule.c:5:17: warning: unused parameter ‘self’ [-Wunused-parameter]
../foo/src/hellomodule.c:5:33: warning: unused parameter ‘args’ [-Wunused-parameter]
bentomaker: Error: bentomaker crashed (uncaught exception <class 'yaku.errors.TaskRunFailure'>: Command failed. Error was: 
        /usr/bin/ld: src/hellomodule.c.o: relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
src/hellomodule.c.o: could not read symbols: Bad value
collect2: error: ld returned 1 exit status
command line was
        'gcc -shared -o /home/skipper/src/bento/examples/recursive/simple/build/_top.so src/hellomodule.c.o -Wl,-Bsymbolic-functions -Wl,-z,relro').
Please report this on bento issue tracker:
    http://github.com/cournape/bento/issues
You can get a full traceback by setting BENTOMAKER_DEBUG=1
Top extensions: _top
All extensions: _top, foo._bottom, bar._bottom2
Local extensions for bar: _bottom2
Looking for gcc (c compiler) ... yes
Checking whether gcc can build objects... yes
Checking whether gcc can build programs... yes
Checking whether gcc can build static libraries... yes
Checking whether gcc can link static libraries to exe... yes
Checking whether gcc can build shared libraries... yes
Checking whether gcc can link shared libraries to exe... yes
Detecting distutils CC exec ... gcc
Detecting CC type... gcc
Detecting distutils CXX exec ... g++ -pthread
Detecting CC type... gcc
Checking whether default can build python object code... yes
Checking whether default can build python extension... yes
PYCC            ../src/hellomodule.c
PYCC            ../foo/src/hellomodule.c
PYCC            ../bar/src/hellomodule.c
PYLINK          src/hellomodule.c.o

Failed
=============== testing examples/simples/conditional ==============
bentomaker: Error: bentomaker crashed (uncaught exception <class 'yaku.errors.TaskRunFailure'>: Command failed. Error was: 
        /usr/bin/ld: src/hellomodule.c.o: relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
src/hellomodule.c.o: could not read symbols: Bad value
collect2: error: ld returned 1 exit status
command line was
        'gcc -shared -o /home/skipper/src/bento/examples/simples/conditional/build/hello/_bar.so src/hellomodule.c.o -Wl,-Bsymbolic-functions -Wl,-z,relro').
Please report this on bento issue tracker:
    http://github.com/cournape/bento/issues
You can get a full traceback by setting BENTOMAKER_DEBUG=1
Looking for gcc (c compiler) ... yes
Checking whether gcc can build objects... yes
Checking whether gcc can build programs... yes
Checking whether gcc can build static libraries... yes
Checking whether gcc can link static libraries to exe... yes
Checking whether gcc can build shared libraries... yes
Checking whether gcc can link shared libraries to exe... yes
Detecting distutils CC exec ... gcc
Detecting CC type... gcc
Detecting distutils CXX exec ... g++ -pthread
Detecting CC type... gcc
Checking whether default can build python object code... yes
Checking whether default can build python extension... yes
PYCC            ../src/hellomodule.c
PYLINK          src/hellomodule.c.o

Failed
=============== testing examples/simples/single_extension ==============
Succeeded
=============== testing examples/simples/executable ==============
Succeeded
=============== testing examples/simples/config_py ==============
Succeeded
=============== testing examples/simples/single_module ==============
Succeeded
=============== testing examples/simples/single_package ==============
Succeeded
=============== testing examples/simples/datafiles ==============
Succeeded
=============== testing examples/simples/single_extension_waf ==============
Succeeded
5 / 16 example failed

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants