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
}