[ITP] chicken-4.9.0.1

Marco Atzeri marco.atzeri@gmail.com
Wed Dec 10 14:41:00 GMT 2014


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


-------------- next part --------------
# 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
}


More information about the Cygwin-apps mailing list