mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-11 14:21:10 +02:00
Bump objcode version in a compatible way
* libguile/_scm.h (SCM_OBJCODE_MINIMUM_MINOR_VERSION): New definition, indicating the oldest objcode version that we support. (SCM_OBJCODE_MINOR_VERSION): Bump. * libguile/loader.c (process_dynamic_segment): Support a range of versions. * module/system/vm/assembler.scm (*bytecode-minor-version*): Bump.
This commit is contained in:
parent
7c71be0c7e
commit
e0502f3c77
3 changed files with 7 additions and 8 deletions
|
@ -248,7 +248,8 @@ void scm_ia64_longjmp (scm_i_jmp_buf *, int);
|
||||||
|
|
||||||
/* Major and minor versions must be single characters. */
|
/* Major and minor versions must be single characters. */
|
||||||
#define SCM_OBJCODE_MAJOR_VERSION 3
|
#define SCM_OBJCODE_MAJOR_VERSION 3
|
||||||
#define SCM_OBJCODE_MINOR_VERSION 9
|
#define SCM_OBJCODE_MINIMUM_MINOR_VERSION 9
|
||||||
|
#define SCM_OBJCODE_MINOR_VERSION A
|
||||||
#define SCM_OBJCODE_MAJOR_VERSION_STRING \
|
#define SCM_OBJCODE_MAJOR_VERSION_STRING \
|
||||||
SCM_CPP_STRINGIFY(SCM_OBJCODE_MAJOR_VERSION)
|
SCM_CPP_STRINGIFY(SCM_OBJCODE_MAJOR_VERSION)
|
||||||
#define SCM_OBJCODE_MINOR_VERSION_STRING \
|
#define SCM_OBJCODE_MINOR_VERSION_STRING \
|
||||||
|
|
|
@ -296,12 +296,10 @@ process_dynamic_segment (char *base, Elf_Phdr *dyn_phdr,
|
||||||
{
|
{
|
||||||
case 0x0202:
|
case 0x0202:
|
||||||
bytecode_kind = BYTECODE_KIND_GUILE_2_2;
|
bytecode_kind = BYTECODE_KIND_GUILE_2_2;
|
||||||
/* As we get closer to 2.2, we will allow for backwards
|
if (minor < SCM_OBJCODE_MINIMUM_MINOR_VERSION)
|
||||||
compatibility and we can change this test to ">"
|
return "incompatible bytecode version";
|
||||||
instead of "!=". However until then, to deal with VM
|
/* FIXME for 3.0: Go back to integers. */
|
||||||
churn it's best to keep these things in
|
if (minor > SCM_OBJCODE_MINOR_VERSION_STRING[0])
|
||||||
lock-step. */
|
|
||||||
if (minor != SCM_OBJCODE_MINOR_VERSION)
|
|
||||||
return "incompatible bytecode version";
|
return "incompatible bytecode version";
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -1807,7 +1807,7 @@ needed."
|
||||||
|
|
||||||
;; FIXME: Define these somewhere central, shared with C.
|
;; FIXME: Define these somewhere central, shared with C.
|
||||||
(define *bytecode-major-version* #x0202)
|
(define *bytecode-major-version* #x0202)
|
||||||
(define *bytecode-minor-version* 9)
|
(define *bytecode-minor-version* (char->integer #\A))
|
||||||
|
|
||||||
(define (link-dynamic-section asm text rw rw-init frame-maps)
|
(define (link-dynamic-section asm text rw rw-init frame-maps)
|
||||||
"Link the dynamic section for an ELF image with bytecode @var{text},
|
"Link the dynamic section for an ELF image with bytecode @var{text},
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue