Skip site navigation (1)Skip section navigation (2)

CVS log for ports/devel/ode-devel/files/patch-configurator.c

[BACK] Up to [FreeBSD] / ports / devel / ode-devel / files

Request diff between arbitrary revisions


Keyword substitution: kv
Default branch: MAIN


Revision 1.1: download - view: text, markup, annotated - select for diffs
Mon Jan 2 20:12:50 2006 UTC (6 years, 1 month ago) by edwin
Branches: MAIN
CVS tags: RELEASE_9_0_0, RELEASE_8_2_0, RELEASE_8_1_0, RELEASE_8_0_0, RELEASE_7_4_0, RELEASE_7_3_0, RELEASE_7_2_0, RELEASE_7_1_0, RELEASE_7_0_0, RELEASE_6_EOL, RELEASE_6_4_0, RELEASE_6_3_0, RELEASE_6_2_0, RELEASE_6_1_0, RELEASE_5_EOL, RELEASE_5_5_0, RELEASE_4_EOL, PRE_XORG_7, HEAD
[PATCH] devel/ode and devel/ode-devel: unbreak on 64bit platforms

	devel/ode and devel/ode-devel ports are marked broken on
	non-i386 archs (i.e. amd64, ia64), because ode fail to build
	on these systems with following errors:

	c++ -Iinclude -c   -fno-exceptions  -fomit-frame-pointer -O -pipe -I/usr/X11R6/include
	+-DdNODEBUG -o ode/src/timer.o ode/src/timer.cpp
	{standard input}: Assembler messages:
	{standard input}:62: Error: `(%esi)' is not a valid 64 bit base/index expression
	{standard input}:63: Error: `4(%esi)' is not a valid 64 bit base/index expression
	{standard input}:86: Error: `(%esi)' is not a valid 64 bit base/index expression
	{standard input}:87: Error: `4(%esi)' is not a valid 64 bit base/index expression
	{standard input}:172: Error: `(%esi)' is not a valid 64 bit base/index expression
	{standard input}:173: Error: `4(%esi)' is not a valid 64 bit base/index expression
	{standard input}:194: Error: `(%esi)' is not a valid 64 bit base/index expression
	{standard input}:195: Error: `4(%esi)' is not a valid 64 bit base/index expression
	{standard input}:234: Error: `(%esi)' is not a valid 64 bit base/index expression
	{standard input}:235: Error: `4(%esi)' is not a valid 64 bit base/index expression
	gmake: *** [ode/src/timer.o] Error 1
	*** Error code 2

	Stop in /usr/ports/devel/ode.

	After some investigation, I think I've solved the problem,
	and it would be great to unbreak ode at last.

	The build on 64 bit platforms fails because some 32 bit
	assembly gets included in the ode/src/timer.cpp file.

	That, on it's turn, happens because ode's configurator
	(simple configure analogue written in C) has too weak
	checking for `pentium compatibility' of host system - it
	just tries to compile following assembly code: `mov $0,
	%eax' as a test. That compiles well on 64 bit platforms,
	but because addressing scheme is now 64bit, above-mentioned
	errors occur when compiling ode's source itself.

	The fix is to add a patch to configurator.c that makes
	`pentium compatibility' test more strict. Thus, test will
	fail on 64 bit ystems and i386 assembly won't be used (ode
	will use more portable routines instead).

	This patch is not well tested, as I myself have no 64 bit
	machines in the vicinity, but it surely doesn't break ode
	on x86 :)

	I've mailed it to ode author, it's now also in ODE's CVS.

PR:		ports/90077
Submitted by:	Dmitry Marakasov <amdmi3@mail.ru>
Approved by:	maintainer timeout

Diff request

This form allows you to request diffs between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.

Log view options