On 12/10/2014 2:14 PM, Christian Kellermann wrote:
* Marco Atzeri  [141210 13:28]:
As I only have access to a 32bit Windows Version (7) atm I am unable to
test this for 64-bit builds.

Compiling chicken-4.9.0.1-1.x86_64
"make" -f ./Makefile.cygwin CONFIG= all
make[1]: Entering directory
'/cygdrive/e/cyg_pub/tmp/chicken-4.9.0.1-1.src/chick
en-4.9.0.1-1.x86_64/src/chicken-4.9.0.1'
gcc -fno-strict-aliasing -fwrapv -DHAVE_CHICKEN_CONFIG_H -DC_ENABLE_PTABLES
-c a pply-hack.x86.S -o apply-hack.x86.o
apply-hack.x86.S: Assembler messages:
apply-hack.x86.S:35: Error: operand type mismatch for `call'
rules.make:184: recipe for target 'apply-hack.x86.o' failed
make[1]: *** [apply-hack.x86.o] Error 1
make[1]: Leaving directory
'/cygdrive/e/cyg_pub/tmp/chicken-4.9.0.1-1.src/chicke
n-4.9.0.1-1.x86_64/src/chicken-4.9.0.1'
GNUmakefile:54: recipe for target 'all' failed

I guess you need use apply-hack.x86-64.S for 64bit.
How is it  managed on Linux ?


There's a shell script that tries to determine the architecture, I
guess it needs to be adjusted for the cygwin 64bit case.

For what I see, it is not really trying

  ARCH ?= x86

only expecting to receive it.

One can force it by passing ARCH=x86-64 as a parameter to make.

Time to move to a minimal config system upstream ?

I don't understand. If there's an upstream change needed I will get
it in.

I was just suggesting the usage of a "standard" config systems:
Automake, cmake...

This should simplify the porting to systems not available yet
to upstream maintainers with the plus of more easy build in a
separate tree than source one.

Of course is it just my 2c$ suggestion.


Kind regards,

Christian

Attached a better chicken.cygport that allow the
build on separate tree, identify the architecture
correctly install and package.

This also avoid the creation of not needed
chicken-4.9.0.1-1.src.patch

You still need to verify the check portion,
it seems that the test in place is not fully working
but I could be wrong.

About x86_64 there is still a starting problem

>>> Compiling chicken-4.9.0.1-1.x86_64
"make" -f ./Makefile.cygwin CONFIG= all
make[1]: Entering directory '/cygdrive/e/cyg_pub/tmp/chicken-4.9.0.1-1.src/chicken-4.9.0.1-1.x86_64/build' gcc -fno-strict-aliasing -fwrapv -DHAVE_CHICKEN_CONFIG_H -DC_ENABLE_PTABLES -c apply-hack.x86-64.S -o apply-hack.x86-64.o
apply-hack.x86-64.S: Assembler messages:
apply-hack.x86-64.S:32: Warning: .type pseudo-op used outside of .def/.endef ignored. apply-hack.x86-64.S:32: Error: junk at end of line, first unrecognized character is `_'
rules.make:184: recipe for target 'apply-hack.x86-64.o' failed
make[1]: *** [apply-hack.x86-64.o] Error 1

the line 32 is:

        .type _C_do_apply_hack, @function

Regards
Marco


# package name
NAME="chicken"
VERSION=4.9.0.1
RELEASE=1

# setup.hint generation
CATEGORY="interpreters"
SUMMARY="A practical and portable scheme system."
DESCRIPTION="A practical and portable scheme system.
CHICKEN is a compiler for the Scheme programming language. CHICKEN
produces portable and efficient C, supports almost all of the R5RS
Scheme language standard, and includes many enhancements and
extensions."

REQUIRES="make gcc-core gcc-g++"

# source and patch files
SRC_URI="http://code.call-cc.org/releases/${PV}/${P}.tar.gz";
MAKEOPTS="PLATFORM=cygwin"


src_compile() {
        lndirs
        cd ${B}
        AR=$(arch)
        if [ $AR = "i686" ]
          then 
                cygmake ARCH="x86"
        elif [ $AR = "x86_64" ]
          then 
                cygmake ARCH="x86-64"
        else
          ECHO "Unknown Architecture"
        fi
}

src_install() {
        cd ${B}
        cyginstall PREFIX=/usr
}

src_test() {
        cd ${B}/tests
        ./runtests.sh
}

Reply via email to