Bento icon indicating copy to clipboard operation
Bento copied to clipboard

Many Bento/examples are broken

Open pchanial opened this issue 12 years ago • 5 comments

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.

pchanial avatar Jul 02 '12 12:07 pchanial

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: https://github.com/cournape/Bento/issues/116

cournape avatar Jul 11 '12 12:07 cournape

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)

pchanial avatar Jul 13 '12 09:07 pchanial

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 :)

cournape avatar Nov 19 '12 09:11 cournape

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 avatar Mar 23 '13 16:03 jseabold

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

jseabold avatar Mar 23 '13 16:03 jseabold