Open hb-- opened 11 years ago
My apologies. I am still working on straightening out the build procedure. It is the next thing on my list, and mentioned in the commit for the description file (I think). A big change will be to only generate the vector when requested. TECO is a text editing language. I wrote the symbol vector generator in it.
As part of this we need to separate MAKE_SYMBOL_VECTOR.TES into one procedure that generates/updates SYMBOL_VECTOR.TXT and then into two separate procedures that use it to generate symbol vectors for the different architectures; maybe MAKE_LINKER_VECTOR.TEC and MAKE_VAX_VECTOR.TEC. These can then be run any time it is needed.
The symbol vector should be updated automagically if there are changes in sqlite3.h, relative to SYMBOL_VECTOR.TXT. It was previously the object library, but the public interface is listed in the header file, so changes will be recorded in there.
Also, don't generate SYMBOL_VECTOR.TXT on a VAX as yet. The LIBRARY utility only lists routine names when using the /NAMES qualifier on VAX, where as on Alpha/I64 it lists the global symbols also.
Significant changes to how the symbol vector is generated. It is now possible to generate all targets without being local. SYMBOL_VECTOR.TXT (used to maintain order of the transfer vector) can only be run on Alpha or Itanium due to data symbols not appearing the listing from LIBRARY/LIST/NAME on VAX. This might change in the future. However, for now it is good enough. The build of SYMBOL_VECTOR.TXT is now linked against sqlite3.h, instead of the object library. If public routines are going to appear, they need to be in the public header file.
... out of the zip box, obviously on Alpha:
$ mmk
#define SQLITE_OMIT_WAL 1
...
CC/NOLIST/OBJECT=SYS$DISK:[.BIN-AXP]WHERE.OBJ/NAME=AS_IS/WARN=DISABLE=(LONGEXTERN,EMPTYFILE) /FIRST_INCLUDE=SYS$DISK:[.ETC-AXP]CONFIG.H/FLOAT=IEEE_FLOAT SYS$DISK:[]WHERE.C+SYS$LIBRARY:SYS$LIB_C/LIB
LIBRARY/REPLACE SYS$DISK:[.BIN-AXP]SQLITE3.OLB SYS$DISK:[.BIN-AXP]WHERE.OBJ
%MMK-F-CANTUPD, cannot update target SYS$DISK:[]SQLITE3_SHR.AXP_OPT - sources un
known
$
$ copy nl: SQLITE3_SHR.AXP_OPT
$ mmk
LINK/SHARE=SYS$DISK:[.BIN-AXP]SQLITE3_SHR.EXE/MAP=SYS$DISK:[.ETC-AXP]/CROSS/FULL SYS$DISK:[]SQLITE3_SHR.AXP_OPT/OPT,SYS$DISK:[.ETC-AXP]VERSION.OPT/OPT, SYS$DISK:[]SQLITE3_VECTOR.AXP_OPT/OPT
%LINK-F-OPTSYNERR, syntax error in options file USR_SCRATCH:[SQLITE3-MASTER]SQLITE3_VECTOR.AXP_OPT;1
-LINK-E-OPTLIN, options line in error
' CASE_SENSITIVE=YES'
%MMK-F-ERRUPD, error status %X106483B4 occurred when updating target SYS$DISK:[.BIN-AXP]SQLITE3_SHR.EXE
$
interesting, where does this file come from?
$ mc sys$login:fats SQLITE3_VECTOR.AXP_OPT
File USR_SCRATCH:[SQLITE3-MASTER]SQLITE3_VECTOR.AXP_OPT;1
credate="17-APR-2013 08:58:34.00"
revdate="17-APR-2013 08:58:34.00"
expdate="17-NOV-1858 00:00:00.00"
bakdate="17-NOV-1858 00:00:00.00"
org=seq
rfm=stmlf
rat=cr
lrl=0
hbk=36
ebk=36
ffb=103
bks=0
fsz=0
deq=5
mrs=0
gbc=0
vrs=0
$ set file/attr=rfm=stm SQLITE3_VECTOR.AXP_OPT
$ mmk
LINK/SHARE=SYS$DISK:[.BIN-AXP]SQLITE3_SHR.EXE/MAP=SYS$DISK:[.ETC-AXP]/CROSS/FULL SYS$DISK:[]SQLITE3_SHR.AXP_OPT/OPT,SYS$DISK:
[.ETC-AXP]VERSION.OPT/OPT, SYS$DISK:[]SQLITE3_VECTOR.AXP_OPT/OPT
%LINK-W-NUDFSYMS, 182 undefined symbols:
%LINK-I-UDFSYM, sqlite3_aggregate_context
%LINK-I-UDFSYM, sqlite3_aggregate_count
%LINK-I-UDFSYM, sqlite3_auto_extension
%LINK-I-UDFSYM, sqlite3_backup_finish
...
Obviously, SQLITE3_SHR.AXP_OPT should contain some object modules or libraries.
$ cre SQLITE3_SHR.AXP_OPT
SYS$DISK:[.BIN-AXP]SQLITE3.OLB/lib
Exit
$ mmk
LINK/SHARE=SYS$DISK:[.BIN-AXP]SQLITE3_SHR.EXE/MAP=SYS$DISK:[.ETC-AXP]/CROSS/FULL SYS$DISK:[]SQLITE3_SHR.AXP_OPT/OPT,SYS$DISK:
[.ETC-AXP]VERSION.OPT/OPT, SYS$DISK:[]SQLITE3_VECTOR.AXP_OPT/OPT
%MMK-F-CANTUPD, cannot update target SYS$DISK:[]SQLITE3.AXP_OPT - sources unknown
$
$ copy nl: SQLITE3.AXP_OPT
$ mmk
DEFINE/USER SQLITE3_SHR BIN_DIR:SQLITE3_SHR.EXE
LINK/EXE=SYS$DISK:[.BIN-AXP]SQLITE3.EXE/NOTRACEBACK/MAP=SYS$DISK:[.ETC-AXP]/CROSS/FULL SYS$DISK:[]SQLITE3.AXP_OPT/OPT,SYS$DISK:[.ET
C-AXP]VERSION.OPT/OPT
%LINK-F-NOMODS, no input modules specified (or found)
%MMK-F-ERRUPD, error status %X1064839C occurred when updating target SYS$DISK:[.BIN-AXP]SQLITE3.EXE
$ cre SQLITE3.AXP_OPT
SYS$DISK:[.BIN-AXP]shell
SYS$DISK:[.BIN-AXP]SQLITE3_SHR/share
Exit
$
DEFINE/USER SQLITE3_SHR BIN_DIR:SQLITE3_SHR.EXE
LINK/EXE=SYS$DISK:[.BIN-AXP]SQLITE3.EXE/NOTRACEBACK/MAP=SYS$DISK:[.ETC-AXP]/CROSS/FULL SYS$DISK:[]SQLITE3.AXP_OPT/OPT,SYS$DISK:[.ET
C-AXP]VERSION.OPT/OPT
%LINK-W-NUDFSYMS, 4 undefined symbols:
%LINK-I-UDFSYM, vms_getname
%LINK-I-UDFSYM, vms_read_history
%LINK-I-UDFSYM, vms_readline
%LINK-I-UDFSYM, vms_write_history
...
$ append tt: SQLITE3.AXP_OPT
SYS$DISK:[.BIN-AXP]vmsshell
Exit
$ mmk
DEFINE/USER SQLITE3_SHR BIN_DIR:SQLITE3_SHR.EXE
LINK/EXE=SYS$DISK:[.BIN-AXP]SQLITE3.EXE/NOTRACEBACK/MAP=SYS$DISK:[.ETC-AXP]/CROSS/FULL SYS$DISK:[]SQLITE3.AXP_OPT/OPT,SYS$DISK:[.ET
C-AXP]VERSION.OPT/OPT
$
Hmm, I do see .I64_OPTs. Maybe I should kust used them. The SQLITE3.I64_OPT has a SQLITE3_SHR/SHARE, which explains the DEFINE/USER (a BIN_DIR:SQLITE3_SHR/SHARE should do, and would be consistent with the other options). The SQLITE3_SHR.I64_OPT has a PSECT_ATTR=$CODE$,SHR. Isn't that default for code? It also contains a collect option for $CODE$,$CODE. Just curious, what's the reason for collecting code into the first cluster?
Sorry, there is more ... I changed os_vms.c to remove the system lock:
$ mmk
LIBRARY/REPLACE SYS$DISK:[.BIN-AXP]SQLITE3.OLB SYS$DISK:[.BIN-AXP]ALTER.OBJ
LIBRARY/REPLACE SYS$DISK:[.BIN-AXP]SQLITE3.OLB SYS$DISK:[.BIN-AXP]ANALYZE.OBJ
LIBRARY/REPLACE SYS$DISK:[.BIN-AXP]SQLITE3.OLB SYS$DISK:[.BIN-AXP]ATTACH.OBJ
...
LIBRARY/REPLACE SYS$DISK:[.BIN-AXP]SQLITE3.OLB SYS$DISK:[.BIN-AXP]OS.OBJ
CC/NOLIST/OBJECT=SYS$DISK:[.BIN-AXP]OS_VMS.OBJ/NAME=AS_IS/WARN=DISABLE=(LONGEXTERN,EMPTYFILE) /FIRST_INCLUDE=SYS$DISK:[.ETC-AXP]CON
FIG.H/FLOAT=IEEE_FLOAT SYS$DISK:[]OS_VMS.C+SYS$LIBRARY:SYS$LIB_C/LIB
LIBRARY/REPLACE SYS$DISK:[.BIN-AXP]SQLITE3.OLB SYS$DISK:[.BIN-AXP]OS_VMS.OBJ
LIBRARY/REPLACE SYS$DISK:[.BIN-AXP]SQLITE3.OLB SYS$DISK:[.BIN-AXP]PAGER.OBJ
...
Why is the library updated for all the object modules?
...
LIBRARY/REPLACE SYS$DISK:[.BIN-AXP]SQLITE3.OLB SYS$DISK:[.BIN-AXP]WHERE.OBJ
EDIT/TECO/EXECUTE= SYS$DISK:[]SQU.TEC "/L:Y/B:Y/T:Y/C:Y/A:Y SYS$DISK:[]MAKE_SYMBOL_VECTOR.TEC=SYS$DISK:[]MAKE_SYMBOL_VECTOR.TES"
Squishing "USR_SCRATCH:[BECKER_H.SQLITE3-MASTER]MAKE_SYMBOL_VECTOR.TES;1"
Creating "USR_SCRATCH:[BECKER_H.SQLITE3-MASTER]MAKE_SYMBOL_VECTOR.TEC;2"
LIBRARY/LIST=SYS$DISK:[.ETC-AXP]SQLITE3.LIS/NAMES SYS$DISK:[.BIN-AXP]SQLITE3.OLB/OBJECT
EDIT/TECO/EXECUTE= MAKE_SYMBOL_VECTOR.TEC "SYS$DISK:[]SYMBOL_VECTOR.TXT=SYS$DISK:[.ETC-AXP]SQLITE3.LIS"
MAKE_SYMBOL_VECTOR V2.0
...Reading symbol vector table from library listing...done...
...Loading public header file for comparison...sorting...done...
...Loading existing symbol vector table...done...
...Building new symbol vector table......done...
...Checking for changes in symbol vector table....
...sqlite3_set_authorizer is missing.
...sqlite3_backup_finish is missing.
...sqlite3_backup_init is missing.
...sqlite3_backup_pagecount is missing.
...
Whatever triggered this after a change in a source module, not a/the header.
...
...sqlite3_vtab_config is missing.
...sqlite3_vtab_on_conflict is missing.
...sqlite3_set_authorizer is new.
...sqlite3_backup_finish is new.
...sqlite3_backup_init is new.
...sqlite3_backup_pagecount is new.
...
Doesn't make sense to me. There shouldn't be any change. Does stmlf strike again?
...sqlite3_vtab_config is new.
...sqlite3_vtab_on_conflict is new
...symbol table has changed...done...
EDIT/TECO/EXECUTE= SYS$DISK:[]SQU.TEC "/L:Y/B:Y/T:Y/C:Y/A:Y SYS$DISK:[]MAKE_LINKER_VECTOR.TEC=SYS$DISK:[]MAKE_LINKER_VECTOR.TES"
Squishing "USR_SCRATCH:[BECKER_H.SQLITE3-MASTER]MAKE_LINKER_VECTOR.TES;1"
Creating "USR_SCRATCH:[BECKER_H.SQLITE3-MASTER]MAKE_LINKER_VECTOR.TEC;2"
EDIT/TECO/EXECUTE= MAKE_LINKER_VECTOR.TEC "SYS$DISK:[]SQLITE3_VECTOR.AXP_OPT=SYS$DISK:[]SYMBOL_VECTOR.TXT"
MAKE_LINKER_VECTOR V1.0
...Loading existing symbol vector table...done...
...Generating Linker Options Symbol Vector...done...
LINK/SHARE=SYS$DISK:[.BIN-AXP]SQLITE3_SHR.EXE/MAP=SYS$DISK:[.ETC-AXP]/CROSS/FULL SYS$DISK:[]SQLITE3_SHR.AXP_OPT/OPT,SYS$DISK:
[.ETC-AXP]VERSION.OPT/OPT, SYS$DISK:[]SQLITE3_VECTOR.AXP_OPT/OPT
%LINK-F-OPTSYNERR, syntax error in options file USR_SCRATCH:[SQLITE3-MASTER]SQLITE3_VECTOR.AXP_OPT;2
-LINK-E-OPTLIN, options line in error
_VECTOR=(sqlite3_set_authorizer='SPARE',SQLITE3_SET_AUTHORIZER/sqlite3_s
%MMK-F-ERRUPD, error status %X106483B4 occurred when updating target SYS$DISK:[.BIN-AXP]SQLITE3_SHR.EXE
$
Even if it were correct to have spare entries, here, spare is an entry by its own:
$ pipe help/nopage/noprompt LINK SYMBOL_VECTOR Option_Values |search sys$pipe spare/window=(0,15) |search sys$pipe "***************" /match=nand
SPARE Use this keyword to create a placeholder.
SPARE allows you to preserve the order of the
symbol vector entries when you need to create an
upwardly compatible shareable image. The SPARE
keyword is used alone; it is not preceded by a
symbol name and equal sign.
Hi @hb--,
Thanks for checking this out. I hadn't had a chance to run the build on Alpha. I had (wrongly) assumed that I had built on Alpha already and filled out those other options files. I'll take care of that today when I do run the build on an Alpha.
As for the collect; yeah, those are defaults. The options files are just copied out of a larger collection of templates I have that include a raft of other options, etc. I had trimmed a lot, just not everything. I'll tidy that up too.
Regards, Tim.
hb-- notifications@github.com wrote:
... out of the zip box, obviously on Alpha:
$ mmk #define SQLITE_OMIT_WAL 1 ... CC/NOLIST/OBJECT=SYS$DISK:[.BIN-AXP]WHERE.OBJ/NAME=AS_IS/WARN=DISABLE=(LONGEXTERN,EMPTYFILE) /FIRST_INCLUDE=SYS$DISK:[.ETC-AXP]CONFIG.H/FLOAT=IEEE_FLOAT SYS$DISK:[]WHERE.C+SYS$LIBRARY:SYS$LIB_C/LIB LIBRARY/REPLACE SYS$DISK:[.BIN-AXP]SQLITE3.OLB SYS$DISK:[.BIN-AXP]WHERE.OBJ %MMK-F-CANTUPD, cannot update target SYS$DISK:[]SQLITE3_SHR.AXP_OPT - sources un known $ $ copy nl: SQLITE3_SHR.AXP_OPT $ mmk LINK/SHARE=SYS$DISK:[.BIN-AXP]SQLITE3_SHR.EXE/MAP=SYS$DISK:[.ETC-AXP]/CROSS/FULL SYS$DISK:[]SQLITE3_SHR.AXP_OPT/OPT,SYS$DISK:[.ETC-AXP]VERSION.OPT/OPT, SYS$DISK:[]SQLITE3_VECTOR.AXP_OPT/OPT %LINK-F-OPTSYNERR, syntax error in options file USR_SCRATCH:[SQLITE3-MASTER]SQLITE3_VECTOR.AXP_OPT;1 -LINK-E-OPTLIN, options line in error ' CASE_SENSITIVE=YES' %MMK-F-ERRUPD, error status %X106483B4 occurred when updating target SYS$DISK:[.BIN-AXP]SQLITE3_SHR.EXE $
interesting, where does this file come from?
$ mc sys$login:fats SQLITE3_VECTOR.AXP_OPT File USR_SCRATCH:[SQLITE3-MASTER]SQLITE3_VECTOR.AXP_OPT;1 credate="17-APR-2013 08:58:34.00" revdate="17-APR-2013 08:58:34.00" expdate="17-NOV-1858 00:00:00.00" bakdate="17-NOV-1858 00:00:00.00" org=seq rfm=stmlf rat=cr lrl=0 hbk=36 ebk=36 ffb=103 bks=0 fsz=0 deq=5 mrs=0 gbc=0 vrs=0 $ set file/attr=rfm=stm SQLITE3_VECTOR.AXP_OPT $ mmk LINK/SHARE=SYS$DISK:[.BIN-AXP]SQLITE3_SHR.EXE/MAP=SYS$DISK:[.ETC-AXP]/CROSS/FULL SYS$DISK:[]SQLITE3_SHR.AXP_OPT/OPT,SYS$DISK: [.ETC-AXP]VERSION.OPT/OPT, SYS$DISK:[]SQLITE3_VECTOR.AXP_OPT/OPT %LINK-W-NUDFSYMS, 182 undefined symbols: %LINK-I-UDFSYM, sqlite3_aggregate_context %LINK-I-UDFSYM, sqlite3_aggregate_count %LINK-I-UDFSYM, sqlite3_auto_extension %LINK-I-UDFSYM, sqlite3_backup_finish ...
Obviously, SQLITE3_SHR.AXP_OPT should contain some object modules or libraries.
$ cre SQLITE3_SHR.AXP_OPT SYS$DISK:[.BIN-AXP]SQLITE3.OLB/lib Exit $ mmk LINK/SHARE=SYS$DISK:[.BIN-AXP]SQLITE3_SHR.EXE/MAP=SYS$DISK:[.ETC-AXP]/CROSS/FULL SYS$DISK:[]SQLITE3_SHR.AXP_OPT/OPT,SYS$DISK: [.ETC-AXP]VERSION.OPT/OPT, SYS$DISK:[]SQLITE3_VECTOR.AXP_OPT/OPT %MMK-F-CANTUPD, cannot update target SYS$DISK:[]SQLITE3.AXP_OPT - sources unknown $ $ copy nl: SQLITE3.AXP_OPT $ mmk DEFINE/USER SQLITE3_SHR BIN_DIR:SQLITE3_SHR.EXE LINK/EXE=SYS$DISK:[.BIN-AXP]SQLITE3.EXE/NOTRACEBACK/MAP=SYS$DISK:[.ETC-AXP]/CROSS/FULL SYS$DISK:[]SQLITE3.AXP_OPT/OPT,SYS$DISK:[.ET C-AXP]VERSION.OPT/OPT %LINK-F-NOMODS, no input modules specified (or found) %MMK-F-ERRUPD, error status %X1064839C occurred when updating target SYS$DISK:[.BIN-AXP]SQLITE3.EXE $ cre SQLITE3.AXP_OPT SYS$DISK:[.BIN-AXP]shell SYS$DISK:[.BIN-AXP]SQLITE3_SHR/share Exit $ DEFINE/USER SQLITE3_SHR BIN_DIR:SQLITE3_SHR.EXE LINK/EXE=SYS$DISK:[.BIN-AXP]SQLITE3.EXE/NOTRACEBACK/MAP=SYS$DISK:[.ETC-AXP]/CROSS/FULL SYS$DISK:[]SQLITE3.AXP_OPT/OPT,SYS$DISK:[.ET C-AXP]VERSION.OPT/OPT %LINK-W-NUDFSYMS, 4 undefined symbols: %LINK-I-UDFSYM, vms_getname %LINK-I-UDFSYM, vms_read_history %LINK-I-UDFSYM, vms_readline %LINK-I-UDFSYM, vms_write_history ... $ append tt: SQLITE3.AXP_OPT SYS$DISK:[.BIN-AXP]vmsshell Exit $ mmk DEFINE/USER SQLITE3_SHR BIN_DIR:SQLITE3_SHR.EXE LINK/EXE=SYS$DISK:[.BIN-AXP]SQLITE3.EXE/NOTRACEBACK/MAP=SYS$DISK:[.ETC-AXP]/CROSS/FULL SYS$DISK:[]SQLITE3.AXP_OPT/OPT,SYS$DISK:[.ET C-AXP]VERSION.OPT/OPT $
Hmm, I do see .I64_OPTs. Maybe I should kust used them. The SQLITE3.I64_OPT has a SQLITE3_SHR/SHARE, which explains the DEFINE/USER (a BIN_DIR:SQLITE3_SHR/SHARE should do, and would be consistent with the other options). The SQLITE3_SHR.I64_OPT has a PSECT_ATTR=$CODE$,SHR. Isn't that default for code? It also contains a collect option for $CODE$,$CODE. Just curious, what's the reason for collecting code into the first cluster?
— Reply to this email directly or view it on GitHub.
Hi @hb--,
I'm not sure what triggered that. Although, it did expose a bug in the symbol vector generator.
That shouldn't have triggered and I'll check that out also. I'll recheck file attributes while I am at it.
Regards, Tim.
hb-- notifications@github.com wrote:
Sorry, there is more ... I changed os_vms.c to remove the system lock:
$ mmk LIBRARY/REPLACE SYS$DISK:[.BIN-AXP]SQLITE3.OLB SYS$DISK:[.BIN-AXP]ALTER.OBJ LIBRARY/REPLACE SYS$DISK:[.BIN-AXP]SQLITE3.OLB SYS$DISK:[.BIN-AXP]ANALYZE.OBJ LIBRARY/REPLACE SYS$DISK:[.BIN-AXP]SQLITE3.OLB SYS$DISK:[.BIN-AXP]ATTACH.OBJ ... LIBRARY/REPLACE SYS$DISK:[.BIN-AXP]SQLITE3.OLB SYS$DISK:[.BIN-AXP]OS.OBJ CC/NOLIST/OBJECT=SYS$DISK:[.BIN-AXP]OS_VMS.OBJ/NAME=AS_IS/WARN=DISABLE=(LONGEXTERN,EMPTYFILE) /FIRST_INCLUDE=SYS$DISK:[.ETC-AXP]CON FIG.H/FLOAT=IEEE_FLOAT SYS$DISK:[]OS_VMS.C+SYS$LIBRARY:SYS$LIB_C/LIB LIBRARY/REPLACE SYS$DISK:[.BIN-AXP]SQLITE3.OLB SYS$DISK:[.BIN-AXP]OS_VMS.OBJ LIBRARY/REPLACE SYS$DISK:[.BIN-AXP]SQLITE3.OLB SYS$DISK:[.BIN-AXP]PAGER.OBJ ...
Why is the library updated for all the object modules?
... LIBRARY/REPLACE SYS$DISK:[.BIN-AXP]SQLITE3.OLB SYS$DISK:[.BIN-AXP]WHERE.OBJ EDIT/TECO/EXECUTE= SYS$DISK:[]SQU.TEC "/L:Y/B:Y/T:Y/C:Y/A:Y SYS$DISK:[]MAKE_SYMBOL_VECTOR.TEC=SYS$DISK:[]MAKE_SYMBOL_VECTOR.TES" Squishing "USR_SCRATCH:[BECKER_H.SQLITE3-MASTER]MAKE_SYMBOL_VECTOR.TES;1" Creating "USR_SCRATCH:[BECKER_H.SQLITE3-MASTER]MAKE_SYMBOL_VECTOR.TEC;2" LIBRARY/LIST=SYS$DISK:[.ETC-AXP]SQLITE3.LIS/NAMES SYS$DISK:[.BIN-AXP]SQLITE3.OLB/OBJECT EDIT/TECO/EXECUTE= MAKE_SYMBOL_VECTOR.TEC "SYS$DISK:[]SYMBOL_VECTOR.TXT=SYS$DISK:[.ETC-AXP]SQLITE3.LIS" MAKE_SYMBOL_VECTOR V2.0 ...Reading symbol vector table from library listing...done... ...Loading public header file for comparison...sorting...done... ...Loading existing symbol vector table...done... ...Building new symbol vector table......done... ...Checking for changes in symbol vector table.... ...sqlite3_set_authorizer is missing. ...sqlite3_backup_finish is missing. ...sqlite3_backup_init is missing. ...sqlite3_backup_pagecount is missing. ...
Whatever triggered this after a change in a source module, not a/the header.
... ...sqlite3_vtab_config is missing. ...sqlite3_vtab_on_conflict is missing. ...sqlite3_set_authorizer is new. ...sqlite3_backup_finish is new. ...sqlite3_backup_init is new. ...sqlite3_backup_pagecount is new. ...
Doesn't make sense to me. There shouldn't be any change. Does stmlf strike again?
...sqlite3_vtab_config is new. ...sqlite3_vtab_on_conflict is new ...symbol table has changed...done... EDIT/TECO/EXECUTE= SYS$DISK:[]SQU.TEC "/L:Y/B:Y/T:Y/C:Y/A:Y SYS$DISK:[]MAKE_LINKER_VECTOR.TEC=SYS$DISK:[]MAKE_LINKER_VECTOR.TES" Squishing "USR_SCRATCH:[BECKER_H.SQLITE3-MASTER]MAKE_LINKER_VECTOR.TES;1" Creating "USR_SCRATCH:[BECKER_H.SQLITE3-MASTER]MAKE_LINKER_VECTOR.TEC;2" EDIT/TECO/EXECUTE= MAKE_LINKER_VECTOR.TEC "SYS$DISK:[]SQLITE3_VECTOR.AXP_OPT=SYS$DISK:[]SYMBOL_VECTOR.TXT" MAKE_LINKER_VECTOR V1.0 ...Loading existing symbol vector table...done... ...Generating Linker Options Symbol Vector...done... LINK/SHARE=SYS$DISK:[.BIN-AXP]SQLITE3_SHR.EXE/MAP=SYS$DISK:[.ETC-AXP]/CROSS/FULL SYS$DISK:[]SQLITE3_SHR.AXP_OPT/OPT,SYS$DISK: [.ETC-AXP]VERSION.OPT/OPT, SYS$DISK:[]SQLITE3_VECTOR.AXP_OPT/OPT %LINK-F-OPTSYNERR, syntax error in options file USR_SCRATCH:[SQLITE3-MASTER]SQLITE3_VECTOR.AXP_OPT;2 -LINK-E-OPTLIN, options line in error _VECTOR=(sqlite3_set_authorizer='SPARE',SQLITE3_SET_AUTHORIZER/sqlite3_s %MMK-F-ERRUPD, error status %X106483B4 occurred when updating target SYS$DISK:[.BIN-AXP]SQLITE3_SHR.EXE $
Even if it were correct to have spare entries, here, spare is an entry by its own:
$ pipe help/nopage/noprompt LINK SYMBOL_VECTOR Option_Values |search sys$pipe spare/window=(0,15) |search sys$pipe "***" /match=nand SPARE Use this keyword to create a placeholder. SPARE allows you to preserve the order of the symbol vector entries when you need to create an upwardly compatible shareable image. The SPARE keyword is used alone; it is not preceded by a symbol name and equal sign.
— Reply to this email directly or view it on GitHub.
$ mmk LIBRARY/REPLACE SYS$DISK:[.BIN-AXP]SQLITE3.OLB SYS$DISK:[.BIN-AXP]ALTER.OBJ LIBRARY/REPLACE SYS$DISK:[.BIN-AXP]SQLITE3.OLB SYS$DISK:[.BIN-AXP]ANALYZE.OBJ LIBRARY/REPLACE SYS$DISK:[.BIN-AXP]SQLITE3.OLB SYS$DISK:[.BIN-AXP]ATTACH.OBJ ... LIBRARY/REPLACE SYS$DISK:[.BIN-AXP]SQLITE3.OLB SYS$DISK:[.BIN-AXP]OS.OBJ CC/NOLIST/OBJECT=SYS$DISK:[.BIN-AXP]OS_VMS.OBJ/NAME=AS_IS/WARN=DISABLE=(LONGEXTERN,EMPTYFILE) /FIRST_INCLUDE=SYS$DISK:[.ETC-AXP]CON FIG.H/FLOAT=IEEE_FLOAT SYS$DISK:[]OS_VMS.C+SYS$LIBRARY:SYS$LIB_C/LIB LIBRARY/REPLACE SYS$DISK:[.BIN-AXP]SQLITE3.OLB SYS$DISK:[.BIN-AXP]OS_VMS.OBJ LIBRARY/REPLACE SYS$DISK:[.BIN-AXP]SQLITE3.OLB SYS$DISK:[.BIN-AXP]PAGER.OBJ ...
Why is the library updated for all the object modules?
As for why the library is updated with all modules...I have no idea. That looks like it might be an issue with MMK. I will have a go at reproducing it here (I have not seen this happen before). Please submit a bug to the MMK project (including the output of MMK/IDENTIFICATION
).
The library update is correct, I triggered it. On Eisner, on the scratch directory, I don't own the files, there is just an ACL giving me access. The editor I use, jed, is written in C and it uses standard C/ANSI functions, which seem not to recognize that the ACL gives me write access to a file. Good thing is, I am granted CONTROL by the ACE, so for a quick fix I changed all the files with set file/prot=w:rwed [...]*.*;*
. That changes the revdate. I should have done this immediately after unzipping the sources and not after the first build. I apologize for the noise.
No problem at all. Thanks for looking into it further and coming up with a solution.
Regards, Tim.
hb-- notifications@github.com wrote:
The library update is correct, I triggered it. On Eisner, on the scratch directory, I don't own the files, there is just an ACL giving me access. The editor I use, jed, is written in C and it uses standard C/ANSI functions, which seem not to recognize that the ACL gives me write access to a file. Good thing is, I am granted CONTROL by the ACE, so for a quick fix I changed all the files with set file/prot=w:rwed [...]. That changes the revdate. I should have done this immediately after unzipping the sources and not after the first build. I apologize for the noise.
— Reply to this email directly or view it on GitHub.
For Alpha, there is still one options file missing (or a recipe to make it out of the other [identical?] i64 options file): EDIT/TECO/EXECUTE= SYS$DISK:[]SQU.TEC "/L:Y/B:Y/T:Y/C:Y/A:Y SYS$DISK:[]MAKE_LINKER_VECTOR.TEC=SYS$DISK:[]MAKE_LINKER_VECTOR.TES"
Squishing "EISNER$LDA2:[USR_ODS5.BECKER_H.sqlite3]make_linker_vector.tes;1" Creating "EISNER$LDA2:[USR_ODS5.BECKER_H.sqlite3]make_linker_vector.tec;2" EDIT/TECO/EXECUTE= MAKE_LINKER_VECTOR.TEC "SYS$DISK:[]SQLITE3_VECTOR.AXP_OPT=SYS$DISK:[]SYMBOL_VECTOR.TXT" MAKE_LINKER_VECTOR V1.0 ...Loading existing symbol vector table...done... ...Generating Linker Options Symbol Vector...done... %MMK-F-CANTUPD, cannot update target SYS$DISK:[]SQLITE3_SHR.AXP_OPT - sources unknown
Hi @hb--, my apologies for not getting to this. I have been snowed under with so much stuff...I have copied the Itanium version to the Alpha version. At this point the two files won't be different. However, it fits into the build easier if each architecture has its own.
As a side note, I have started to port UnQLite, using the VMS-specific code in SQLite also. You can see more here:
https://github.com/endlesssoftware/unqlite
Regards, @tesneddon
The sqlite3_vector.axp_opt in the repository/zip file still has the
I'll have a look at checking in the right format file. I was having a bit of trouble with this a while back, but don't remember if I fixed it or not. There are a bunch of changes I have to get back into the tree over the next couple days, so maybe that is one of them.
and without knowning what teco does ...
OK, no surprise that the linker is unhappy, although the linker is my friend :-)