Re: Building Clearsilver under LTIB

Brandon Long <[email protected]> Wed, 6 May 2009 01:30:10 -0700
Newsgroups gmane.text.clearsilver.general
Organization Fiction L Networks
Message-ID <20090506083010.GA14291@bl1>
No, it should work to not use setup.py, earlier versions of clearsilver
built it directly before we switched to distutils.

Brandon

On 05/05/09 Rick Walsh uttered the following other thing:
>    That didn't help; the offending compile options were still present.  I
>    guess the arguments only add "extra" options, they don't replace what's
>    there. 
> 
>    I can build neo_cgi.so directly with the cross-compiler, but am I missing
>    some information by not running setup.py?  From the output, it didn't seem
>    like it was doing anything other than calling the compiler/linker.
> 
>    On Tue, May 5, 2009 at 5:00 PM, Brandon Long <[email protected]> wrote:
> 
>      So, if you can run programs built for the board on your local box, its
>      probably fairly straight-forward.
> 
>      If not, things get more complicated, but what I think you need to do is
>      add a named argument to the Extension class that's built in setup.py as
>      part of setup_args and pass an empty extra_compile_args argument, ie:
>         'ext_modules': [Extension(
>           name="neo_cgi",
>           sources=["neo_cgi.c", "neo_cs.c", "neo_util.c"],
>           include_dirs=INC_DIRS,
>           library_dirs=LIB_DIRS,
>           libraries=LIBRARIES,
>           extra_compile_args='',
>           )]
> 
>      You may also need an extra_link_args if there are things passed to the
>      linker
>      you don't want.  And it may not be empty.
> 
>      I think distutils loads these by default from the
>      /usr/lib/python2.x/config/Makefile or something like that.
> 
>      Brandon
>      On 05/05/09 Rick Walsh uttered the following other thing:
>      >    I agree.  The cross-compile does work for my C/CPP files but the
>      Python
>      >    stuff does not.  Brandon is correct about setup.py -- it's not
>      friendly
>      >    with the cross-compiler.  However it seems like its just a couple
>      options
>      >    that are hanging it up.  If I can get it to omit "-march=i586
>      -mtune=i686"
>      >    from the command, I think the darn thing would work.  Admittedly,
>      I'm a
>      >    novice when it comes to setup.py, so if someone has a suggestion...
>      >
>      >    I guess as a fallback I can always manually compile it using the
>      command
>      >    line setup.py gives me.
>      >
>      >    make[1]: Leaving directory
>      >    `/home/rwalsh05/LTIB/cmn100/rpm/BUILD/clearsilver-0.10.5/cs'
>      >    make[1]: Entering directory
>      >    `/home/rwalsh05/LTIB/cmn100/rpm/BUILD/clearsilver-0.10.5/cgi'
>      >    make[1]: Nothing to be done for `everything'.
>      >    make[1]: Leaving directory
>      >    `/home/rwalsh05/LTIB/cmn100/rpm/BUILD/clearsilver-0.10.5/cgi'
>      >    make[1]: Entering directory
>      >    `/home/rwalsh05/LTIB/cmn100/rpm/BUILD/clearsilver-0.10.5/python'
>      >    rm -f neo_cgi.so
>      >    CC="gcc" LDSHARED="gcc -shared -fPIC" /usr/bin/python setup.py
>      build_ext
>      >    --inplace
>      >    adding lib_path $(LIB_DIR)
>      >    adding lib z
>      >    Overriding setup's CC from gcc -pthread to gcc
>      >    running build_ext
>      >    building 'neo_cgi' extension
>      >    gcc -fno-strict-aliasing -DNDEBUG -O2 -march=i586 -mtune=i686
>      >    -fmessage-length=0 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -g
>      -fwrapv
>      >    -fPIC -I../ -I/usr/include/python2.5 -c neo_cgi.c -o
>      >    build/temp.linux-i686-2.5/neo_cgi.o
>      >    cc1: error: unrecognized command line option "-march=i586"
>      >    neo_cgi.c:1: error: bad value (i686) for -mtune= switch
>      >    error: command 'gcc' failed with exit status 1
>      >    make[1]: *** [neo_cgi.so] Error 1
>      >    make[1]: Leaving directory
>      >    `/home/rwalsh05/LTIB/cmn100/rpm/BUILD/clearsilver-0.10.5/python'
>      >    make: *** [cs] Error 2
>      >    error: Bad exit status from
>      /home/rwalsh05/LTIB/cmn100/tmp/rpm-tmp.53647
>      >    (%build)
>      >
>      >    On Tue, May 5, 2009 at 4:34 AM, Mario Gliewe <[email protected]>
>      wrote:
>      >
>      >      Hello,
>      >
>      >      cross compiling clearsilver is working fine, one has to remove
>      >      the 'test' target in cs/makefile by hand though.
>      >
>      >      this is what i'm doing on my linux-host to cross-compile using
>      mingw
>      >      (excerpt from my Makefile):
>      >
>      >      -snip-
>      >
>      >      MINGW=i586-mingw32msvc
>      >
>      >      windows/clearsilver/rules.mk:
>      >         CC=${MINGW}-gcc \
>      >         AR=${MINGW}ar \
>      >         CXX=${MINGW}-g++ \
>      >         RANLIB=${MINGW}-ranlib \
>      >             cd windows/clearsilver; \
>      >             ./configure --host=${MINGW} --target=${MINGW} \
>      >                         --disable-perl --disable-python
>      >      build-win-clearsilver:
>      >             make -C windows/clearsilver
>      >
>      >      -snap-
>      >
>      >      greets
>      >      mario
>      >
>      >      (brandon: sorry for double-post, wrong button /-)
>      >
>      >    --
>      >    Regards,
>      >    Rick Walsh
>      >    [email protected]
> 
>      --
>       "The most merciful thing in the world is the inability of the human
>       mind to correlate all its contents." -- H. P. Lovecraft
>                                                http://www.fiction.net/blong/
> 
>    --
>    Regards,
>    Rick Walsh
>    [email protected]

-- 
  "The Creation of the Universe was made possible by a grant from Texas
     Instruments." -- Credits, The Creation of the Universe (PBS)
                                          http://www.fiction.net/blong/