[ nedit-Bugs-1625283 ] build on 64-bit system
SourceForge.net
noreply at sourceforge.net
Tue Jan 2 10:06:16 CET 2007
Bugs item #1625283, was opened at 2006-12-31 11:40
Message generated for change (Comment added) made by keidel
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=111005&aid=1625283&group_id=11005
Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: Build/Install
Group: development
Status: Open
Resolution: None
Priority: 5
Private: No
Submitted By: Juergen Keidel (keidel)
Assigned to: Nobody/Anonymous (nobody)
Summary: build on 64-bit system
Initial Comment:
Building from Source on Linux with a 64-bit system leads to several error messages (casting from/to int from/to pointer.
After solving these compiler messages, the program runs. Using the preference file, it aborts with segfault when inserting something.
Without preferences (no Macros) it works.
Abort happens in ContinueMacro
at : status = (*inst)();
The 32-bit version with same preference file runs stable.
----------------------------------------------------------------------
>Comment By: Juergen Keidel (keidel)
Date: 2007-01-02 10:06
Message:
Logged In: YES
user_id=86514
Originator: YES
The reason for the segfault lies in interpreter.c, handling of branches.
getting a value from PC results in compilerwarnings about different sizes
of pointer and int. solving this by casting the void * of PC to long int
get an address-like expansion of the value (i.e. extended to
0x7fffffff00000008 p.E)
So the branching functions in interpreter.c must mask (or shift left32 and
right back 32-bit of the value)
This old trick of storing values in a pointer-location has problems at
64-Bit systems.
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=111005&aid=1625283&group_id=11005
More information about the Develop
mailing list