diff options
author | Lorry Tar Creator <lorry-tar-importer@baserock.org> | 2015-02-17 17:25:57 +0000 |
---|---|---|
committer | <> | 2015-03-17 16:26:24 +0000 |
commit | 780b92ada9afcf1d58085a83a0b9e6bc982203d1 (patch) | |
tree | 598f8b9fa431b228d29897e798de4ac0c1d3d970 /dist | |
parent | 7a2660ba9cc2dc03a69ddfcfd95369395cc87444 (diff) | |
download | berkeleydb-master.tar.gz |
Diffstat (limited to 'dist')
78 files changed, 4032 insertions, 1565 deletions
diff --git a/dist/ChangeLog b/dist/ChangeLog index 8ed93de7..adff63a8 100644 --- a/dist/ChangeLog +++ b/dist/ChangeLog @@ -1,318 +1,384 @@ -= Berkeley DB 5.3 Changelog = += Berkeley DB 6.1 Changelog = -== Changes between 11.2.5.3.15 and 11.2.5.3.21 == +== Changes between 12.1.6.1.20 and 12.1.6.1.23 == -Fixed incompatibility problems of Java DPL with JDK7, so DPL will now -work with JDK7. [#20586] +Fixed a recovery bug that could cause files to end up in the +wrong directory when using logs created in 5.3 or earlier. [#24169] -Added a flag to allow database locking to be disabled from the SQL -API. [#20928] +Creating a table in SQL will no longer fail if the database +connection was opened without the SQLITE_OPEN_CREATE flag. [#24115] -Fixed a bug that could allocate a heap data page in a region after the -region creation has been undone. [#20939] +Fixed a bug where an error message was not displayed back to the user +correctly when sequence creation failed. [#24103] -Redundant whitespaces are now ignored in DB_CONFIG lines pertaining to -directories, e.g. set_data_dir. [#20158] +Fixed a bug where BDB was not handling tables with multiple BLOB columns +when using the SQL API. [#24092] -Fixed a bug that caused DB_ENV->backup to stop early if DB_BACKUP_FILES was -not set and a non-DB file was in the data directory. [#21076] +SQL sequence names are now case insensitive except when surrounded +by quotation marks. [#23964] -Fixed a rare race condition that could cause a crash if two processes opened -the same database at the same time. [#21041] +Avoid incrementing the statistic DB_LOG_STAT.st_scount +("Total log file flushes") when DB_LOG_NOSYNC is in effect. [#23945] -Fixed missing cross compiling capability for the JDBC driver. [#21101] +Fixed a bug that may lead to crash when opening multiple environments +in a multi-threaded program. [#23913] -Allow the same system/machine to host both a master and a replica -database through the use of relative pathnames. [#21105] +Improved the way we mark a password as consumed. [#23876] -Fixed a bug in the Java API where EnvironmentConfig.setCreateDir would fail -to configure the environment. [#21127] +Fixed the error "BDB2074 No space available in latch table" for +configurations using plain pthreads mutexes and DB_ENV->set_thread_count(). +Susceptible configurations include the definition of HAVE_MUTEX_PTHREADS +in db_config.h but do not define HAVE_MUTEX_HYBRID. [#23831] -Fixed an assert failure in btreeCompare when allocating memory -in the wrong thread was causing a memory leak. [#21232] +Fixed a crash when MVCC and snapshot isolation are used and the system is under +heavy load. [#23815] -Fixed a bug in the Java API where concurrent operations that change the -database schema could lead to a hang. [#21265] +Fixed a problem with closing a panicked environment, in which an +infinite loop was possible. [#23814] -Added JDBC code to the code base and updated the windows build files -to include the JDBC solution. [#21294] +Removed Java 5 targets from Windows builds and javadoc production. [#23811] -Fixed a bug where the heap's region size was not getting swapped correctly -in mixed-endian environments. [#21295] +Support for client-to-client replication of BLOB data during internal +initialization has been disabled. [#23748] -Fixed a bug in the db_sql_jdbc project file for vs2010 that was preventing -it from building correctly. [#21332] +Fixed a bug that may cause self-deadlock during database compaction. [#23725] -== Database or Log File On-Disk Format Changes == +Fixed a bug in the recovery of a truncated hash database. [#23772] + +== Changes between 12.1.6.1.19 and 12.1.6.1.20 == + +Fixed a sqlite3odbc bug which may return an out-of-memory error when calling +SQLGetData() on empty long columns. [#22777] + +Enabling BLOB support and master leases will no longer result +in unexpected DB_REP_LEASE_EXPIRED errors. [#23275] -Existing database file formats were unchanged in library version 11.2.5.3. +Fixed a race condition when BLOB support is enabled with replication +where message handling could fail with an ENOENT error. [#23275] -The log file format changed in library version 11.2.5.3. +Existing SQL databases will have to be reindexed after upgrading +to this release. No actions are required for non-SQL databases. +Check the upgrade documentation for more details. [#23469] -== New Features == +Fixed a known bug in SQL where ORDER BY could return results +out of order if an index is used to answer the query. [#23469] -Added support for verifying named in-memory dbs. [#16941] +Fixed a bug that causes a crash when opening a corrupted environment +with encryption and DB_REGISTER. [#23643] -Added an integer key comparison function to improve performance through -the SQL API. [#19609] +Fixed a bug that causes a crash when opening a corrupted environment +with DB_FAILCHK using a BDB compiled with DIAGNOSTIC defined. [#23643] -Support build on the platforms where pthread_t is a struct. [#19876] +Fixed a bug where closing a panicked environment raised an access violation +and crashed the program. [#23679] -Added an API call so the user can specify the size of the region in a -heap db. [#19914] +Fixed a bug where db_verify did not verify multiple files correctly. [#23692] + +Fixed a bug that causes a site joining a replication group to hang or +to only partially complete the internal steps necessary to join the +replication group. [#23750] + +== Database or Log File On-Disk Format Changes == -Improved Replication Manager's ability to recover from the (perhaps -rare) phenomenon of two sites trying to connect to each other -simultaneously, which used to result in loss of both connections, -requiring a retry after the CONNECTION_RETRY timeout period. [#19980] +The log file format changed in 12.1.6.1. -Enhanced the interface for copying databases for a hot backup. Added configure -support for --enable-atomicfileread. [#20129] +== New Features/Improvements == -Enhaced the log reading routine to detect that a log file is missing rather -than returning that a zero length record was found. [#20130] +Demonstrated in a sample app how to use thread-specific structures to +associate a DB_EVENT_REP_PERM_FAILED event with the transaction that +caused it. [#17686] -Added pragma bdbsql_shared_resources to set or report the maximum amount of -memory to be used by shared structures in the main environment region and -bdbsql_lock_tablesize to set or report the number of buckets in -the lock object hash table. These are advanced tuning features for -applications with large number of tables or needs to reduce locking on -concurrent long running transactions. [#20156] +Replication Manager Preferred Master is a new option for 2-site +replication groups. One site is the preferred master, which assumes the +master role as much of the time as its availability permits. A preferred +master replication group guarantees that transactions committed +on the preferred master site will never be rolled back while also +providing client failover. [#20230] -Added set_metadata_dir() and get_metadata_dir() to enable storage of -persistent metadata files in a location other than the environment -home directory. [#20174] +A new flag DB_FORCESYNCENV is provided for DB_ENV->close(), which forces +flushing the memory mapped regions before unmapping them. [#21176] -Improved the error handling through the SQL API. Errors can be sent to a -file with the use of the BDBSQL_ERROR_FILE pragma. [#20213] +A new API is provided to limit the Replication Manager incoming queue based +on the amount of heap memory it uses. [#21481] -Database handles can now be configured to give exclusive access to -the database. [#20331] +BLOB support is now available for environments configured for +replication. [#22359] -XA transactions will now use transaction snapshots if the XA databases -they operate on were configured with DB_MULTIVERSION. [#20332] +A new version of DB_ENV->failchk() helps supports multi-process environments +which use DB_REGISTER rather than a monitoring process. It is turned on with +--enable-failchk_broadcast. [#22419] -Added additional stats fields into the C# API [#20693] +Added support for Visual Studio 2012. [#22477] -Added pragma bdbsql_single_process to keep the Berkeley DB environment -information on the heap instead of in shared memory. This option cannot -be used if the database is accessed from multiple processes. [#20789] +CPU time needed for database backups is now reduced. [#22967] -Improved the ability of DB->compact to move DB_HASH database pages to the -begining of the file. [#20815] +Added BDB utilities for the Android platform. [#23079] + +Added --enable-error_history support. This diagnostic tool prints a +stack trace when a panic occurs. [#23119] + +The new log configuration option DB_LOG_NOSYNC has been added to avoid +flushing the transaction log in order to stabilize storage. This can be +useful when durability across system crashes is unnecessary and all the +transactions in the environment specify either the DB_TXN_NOSYNC or +DB_TXN_WRITE_NOSYNC flag. This configuration setting may be made by +DB_ENV->log_set_config() or a DB_CONFIG line "db_log_nosync [on|off]". [#23191] == Database Environment Changes == -Fixed a bug that could cause a segmentation violation when closing -an environment handle which has open database handles on partition -databases. [#20281] +Fixed a problem with DB_LOCKDOWN which would cause an mlock error ENOMEM +on some operating systems. [#21379] + +DB_ENV->close() now detaches from the environment's mmap and shared memory +regions even when a panic error (DB_RUNRECOVERY) has been returned. +DB_ENV->open(DB_REGISTER) detects whether a panic has occurred in the +environment. If so it returns DB_RUNRECOVERY. Prior to this, the panic state +was not detected, which might have caused a hang. [#22805] -Fixed a bug that could cause a segmentation violation if a region was -extended leaving a very small fragment at the end. [#20414] +Ensure that the size of memory mapped backing files are a multiple of the +system pagesize. Previously the files were aligned up to 8KB boundaries, +which was not adequate for systems with a 64KB pagesize. [#23290] -Changed the behavior of the DB_REGISTER | DB_RECOVER flag combination, so -that recovery is always run if the environment panic bit is set. [#20767] +== Concurrent Data Store Changes == + +-None == Access Method Changes == -Fixed a bug were database configuration settings could be lost when the -database was opened if the open operation was blocked for any amount -of time. [#20860] +Fixed a bug that left behind obsolete queue extents. [#21988] -Fixed a bug that bulk update operations did not work correctly on -compressed databases. [#19017] +Fixed a bug that occurred if the range keys did not fit within one database +page during database partition opening. [#22280] -Improved the log flushing performance when ftruncate() is not available -on a system. [#19725] +Corrected a buffer mutex deadlock involving off-page duplicate sets and +less than full transactional isolation levels. [#22532] -When performing partial puts in a heap database, empty pieces will no longer -be left in a split record chain. [#20052] +Fixed a byte swapping bug that could corrupt the header of heap database +pages. [#23318] -Fixed a bug where, on systems without FTRUNCATE, db_verify will return an -error for truncated heap databases. [#20195] +== API Changes == -Fixed a bug where BDB could run out of mutexes when many databases are -renamed. [#20228] +Make flag checking in sequence stat print API consistent with the other +stat print APIs. [#22513] -Fixed a bug where the metadata page in hash databases would not be flushed -to disk. [#20265] +== SQL-specific API Changes == -Fixed a bug that could leave deleted pages from a HEAP database in the -buffer cache. [#20309] +Fixed a bug that was preventing old log files from being +removed while using the SQL API. [#22521] -Fixed a bug where the library would fail to put records with overflow keys -into hash duplicate database. [#20329] - -Fixed a bug in DB->compact of btrees that could cause a bad pointer -reference. [#20360] +Updated SQL API build to be compatible with SQLite 3.8.3.1. [#23178] -Fixed a bug that could cause the last page number stored on the metadata -page to be wrong after rolling forward a db->compact operation that freed -more pages than will fit in a single log record. [#20646] +Updated ADO.NET API to be compatible with System.Data.SQLite 1.0.91.0. [#23446] -Fixed a bug that could cause DB->stat to block on a mutex while holding a -lock on the metadata page. [#20770] +== Tcl-specific API Changes == -Fixed a bug that could cause DB->compact of a DB_HASH database to fail to -mark a page it updated as dirty. [#20778] +Exposed flag DB_SET_MUTEX_FAILCHK_TIMEOUT in Tcl API. [#23163] -Fixed a bug where internal HEAP structures were not rebuilt during database -handle refresh. [#20821] +Added msgfile and msgfile_close in the Tcl API. [#31881]. -Fixed a bug with secondary indices, off-page duplicates and -DB_READ_COMMITTED which could erroneously release the lock on the page -holding a returned record. [#20853] +== Java-specific API Changes == -Fixed a bug that could cause a hang or improperly report an empty queue when -the queue record numbers wrapped around at 2^32. [#20956] +Exposed DB->set_msgfile(), DB_ENV->set_msgfile() and all xxx_stat_print() in +Java API.[#22691] -Fixed a bug on Linux or Windows that could generate a checksum error -if a database file was being opened while the meta data page happened -to be flushed from the cache. [#20996] +Exposed flags DB_REPMGR_CONF_PREFMAS_MASTER and DB_REPMGR_CONF_PREFMAS_CLIENT +in Java API. [#23163] -== SQL API Changes == +Exposed new flag DB_LOG_NOSYNC in Java API. [#23191] -Fixed several memory leaks in the Online Backup API. [#19850] +Updated DPL changes from BDB JE. [#23251] -Fixed a bug in the SQL API when using large blob items and multiple concurrent -connections. [#19945] +Exposed new flag DB_EVENT_REP_INQUEUE_FULL in Java API. [#23280] -To avoid a race condition that could cause a snapshot reader to see a wrong -version it is now not permitted to open a DB handle specifying DB_MULTIVERSION -if that database is currently opened by a handle which did not specify -DB_MULTIVERSION. [#19940] +Fixed a bug that partition directories could not be set correctly via +Java API. [#23410] -Pragma replication=on can now enable replication on an existing database. -Turning replication off is now permanent. [#20180] +== C#-specific API Changes == -Fixed a bug in the SQL API where it was possible for a schema update to be -ignored when accessing a database from multiple processes. [#20319] +The class LockDetectMode has been removed. It was duplicating functionality +provided in other classes and not being used. [#21248] -Fixed a bug where aborting an exclusive transaction followed by an -auto-commit read operation causes an assert failure. [#20567] +Exposed DB_STAT_ALLOC in PrintLockingSystemStats(), PrintLoggingSystemStats(), +PrintMPoolSystemStats(), PrintMutexSystemStats(), PrintStats() and +PrintTransactionSystemStats(). [#22513] -Fixed a bug in the SQL API where using the journal_mode pragma could cause a -crash when used as the first operation in a connection on an existing -database. [#20620] +Exposed DB->set_msgcall(), DB->set_msgfile(), DB_ENV->set_msgcall() and +DB_ENV->set_msgfile() to C# API. [#22799] -Turn off the DBSQL encryption option on Windows/WinCE by default to match the -behavior on the other platforms. [#20671] +Exposed flags DB_REPMGR_CONF_PREFMAS_MASTER and DB_REPMGR_CONF_PREFMAS_CLIENT +in C# API. [#23163] -Renamed the BDBSQL_OMIT_SHARING preprocessor flag to -BDBSQL_SINGLE_PROCESS. [#20789] +Exposed new flag DB_LOG_NOSYNC in C# API. [#23191] -Fixed a bug dealing with handle lock modes not reflecting the correct state -which was causing a deadlock in the SQL API. [#20862] +Exposed new flag DB_EVENT_REP_INQUEUE_FULL in C# API. [#23280] -== Java-specific API changes == +Changed definition of all structs to make SWIG 2.0.12 can generate code +successfully. [#23295] -Added ReplicationManagerConnectionStatus class and -ReplicationManagerSiteInfo.getConnectionStatus(). Deprecated -ReplicationManagerSiteInfo.isConnected(). [#18068] +== C++-specific API Changes == -Updated EID_MASTER to be "public static final" so that it would be exposed -in Java docs. [#20184] +Fixed a bug that db_stl library could not build using gcc-4.7 or later +versions. [#22615] -Fixed a bug where calls that return Stat objects could cause a -segfault. [#20377] - == Replication Changes == -Fixed quorum computation when most sites are unelectable. [#15251] +Fixed a bug where, after some rare multiple-site failure scenarios +including transaction rollbacks, Replication Manager could have incorrectly +determined that new transactions fulfilled the acknowledgement policy. [#16624] + +Acknowledgements are counted more precisely when an unelectable client is first +joining the replication group and also when a master has been set to be +unelectable. [#20825] -Made Replication more resilient to random input on its port. [#15712] +If there is already a replication process running, do not require a flag +value when calling DB_ENV->repmgr_start() to start a subordinate +process. [#20980] -Fixed a bug where the datadir structure was not maintained during an -internal init. [#19041] +Fixed a bug that a site could not rejoin the replication group on Windows +after being removed from the group. [#22460] -Fixed a repmgr memory leak when using DB_PRIVATE. [#19363] +When a removed site rejoins a two-site replication group with +DB_REPMGR_CONF_2SITE_STRICT turned off, defer its election so that the +rejoining site does not prematurely elect itself master with only its own +vote when the other site is already master. [#22683] -Fixed a minor bug to handle ENOMEM when using an in-memory -temp database. [#20197] +Fixed a bug where a Replication Manager subordinate process could fail its +automatic takeover as the replication process because it is unnecessarily +waiting for acknowledgements from other sites before the connections to +these sites are properly established. [#22998] -Fixed a bug where multiple long running transactions across -checkpoints could cause Log Sequence errors on client systems. [#20421] +Fixed a bug where a client synchronization could get stuck because certain +error paths were failing to release an internal lockout. [#23169] -Fixed a bug where multiple Replication Manager processes would sometimes -not all conform to replication-group-aware log archiving. [#20342] +Fixed a bug where replication group-aware log archiving might have +unnecessarily kept log files after certain connection sequences between +sites. [#23420] == Locking Subsystem Changes == -Fixed a bug that could cause an early lock timeout if a previous error -left a lock timeout value set. [#19973] +None == Logging Subsystem Changes == -Fixed a bug which could cause an incompletely written log record to be -recognized as valid, resulting in recovery failing with the message "Illegal -record type <integer, usually 0> in log". [#17851] - -Fixed a bug where printlog would fail on in-memory heap databases. [#20269] +Avoid incrementing the statistic DB_LOG_STAT.st_scount +("Total log file flushes") when DB_LOG_NOSYNC is in effect. [#23945] == Memory Pool Subsystem Changes == -Fixed a bug which overstated the number of clean and dirty pages evicted from -the cache. [#20410] +None -Fixed a bug that left a small fragment at the end of a region when -extending. [#20414] +== Mutex Subsystem Changes == -Fixed a bug where the file bucket was always zero when creating a mpoolfile -using the mpool API. [#20468] +Removed an environment handle mutex which was no longer needed. [#23099] -Fixed a bug with multiversion concurrency control which could cause -versions of pages to remain in the cache even though they are no longer -needed. [#20570] +Removed the last source files of the defunct fcntl mutex +implementation. [#23119] -The memory pool allocator will now start freezing MVCC versions of buffers -if it sees more than 1/4 of the available buffers are taken up by -versions. [#20836] +== Transaction Subsystem Changes == -== Mutex Subsystem Changes == +None -Fixed a bug in which DB_ENV->mutex_set_align() could cause -DB_ENV->mutex_stat_print(dbenv, DB_STAT_ALL) to display only the -first mutex. [#20522] +== Test Suite Changes == -Fixed a bug with DB_ENV->mutex_stat_print() in which the information on -some mutexes would not be displayed, if any mutex had been freed and not -yet reallocated. [#20533] +None -== Transaction Subsystem Changes == +== Utility Changes == -Fixed a bug where a malloc failure could result in a segfault -when doing a put on a database with secondaries. [#20641] +None -== Utility Changes == +== Configuration, Documentation, Sample Apps, Portability and Build Changes == -Fixed a bug that would cause verify to call the wrong compare function if -there are user defined compare functions used and the database has multilevel -off page sorted duplicate trees. [#20284] +Fixed a bug that ex_rep_base could not quit gracefully after receiving 'exit' +command. [#16871] -Fixed a bug that could cause recovery to fail if DB->compact moved the meta -data page of a HASH subdatabase. [#20708] +Extended the ex_rep_mgr Replication Manager sample application to demonstrate +the use of a thread-specific structure to associate a DB_EVENT_REP_PERM_FAILED +event with its originating transaction. [#17686] -Fixed two problems with db_hotbackup's handling of transaction logs. A hotbackup -would always try to open the logs in the environment home, even if a log -directory had been specified. The second fix corrected an error path, in which -the memory was freed by the wrong function, possibly causing a guard byte error. -[#21313] +Parameter "-module" is removed from task libsqilte_jni in JDBC makefile. So +libsqlite_jni library could be built in '.dylib' format on Mac OS X. [#22937] -== Configuration, Documentation, Sample Apps, Portability and Build Changes == +Additional information about the cause of an error may now be displayed by +configuring with --enable-error_history. [#23119] -The DB_CONFIG configuration commands which specify directory pathnames -("set_data_dir", "set_lg_dir", and "set_tmp_dir") now accept names containing -whitespace characters. [#20158] +Add one public error code 'DB_META_CHKSUM_FAIL'. [#23304] -== Known Bugs == +Added build support on latest MinGW. [#23332] + +A configuration warning 'Ignoring --with-cryptography flag value' is added +for the non-crypto package. [#23333] + +Parameter LIBSQLSO_LIBS is added to the task libsqlso_target to workaround +a linking issue with the gcc 4.8.1 distributed by Ubuntu. [#23372] + +Extended the Mac OS X section in the chapter 7 of the installation +guide. [#23388] -If two SQL processes are concurrently altering the schema of the same tables -in a database, there is a race condition that can cause the application -to hang. [#20513] +Fixed PHP module to consistently use the ZEND_REGISTER_RESOURCE macro, +preventing a build failure with PHP 5.5. Updated INSTALL file +to note the changed location of sample output. [#23391] + +Fixed a few typos in the JDBC/ODBC sections of the Windows/Unix installation +guide. [#23404] + +== Example Changes == + +Added an example using BDB SQL with the JDBC driver and ADF. [#22569] + +== Miscellaneous Bug Fixes == + +Fixed a byte swapping bug with log file operations on blob files. +[#22215] + +Fixed test failures on QNX with small mutex regions. [#22310] + +Database containing BLOBS are now portable between machines of +opposite endianness. [#22455] + +Added a -D option to display output for db_dump and db_printlog. +This value takes priority over DB_ENV->set_data_len() if that +was called to set the length. [#22485] + +Updates to PHP API to handle functional changes in PHP 5.4. [#22549] + +Fixed heap databases so they can work on both big and little +endian machines. [#22929] + +Restructure the blob delete code to improve performance. [#22935] + +Properly clean up blob meta database after aborting the creation of its +parent database. [#23000] + +Fixed memory alignment issues with the DB_MPOOL stats. [#23150] + +Fixed a byte swapping bug with heap blob log records. [#23319] + +Fixed two race condition bugs with DB_ENV->failchk(). [#23347] + +Fixed memory alignment issue on Solaris. [#23571] + +Fixed a bug that using Visual Studio 2010 and JDK 1.5 could generate corrupted +jar files. [#23574] + +Fixed a bug that specifying --with-cryptography=yes did not build the jdbc +library correctly. [#23606] + +== Platform Certification Changes == + +Berkeley DB no longer tests or certifies Windows XP or Windows 2003. + +== Deprecated Features == + +The DB_AUTO_COMMIT flag is present in the DB_SEQUENCE APIs for Java and +C#. This flg is no longer meaningful for these APIs and will be +deprecated in the next release. + +== Known Bugs == -Replication groups including machines of different endianness do -not support the heap access method. [#21016] +[#23469] (Fixed in 12.1.6.1.20 -- see above.) +The SQL ORDER BY command on the primary key of a table can in +rare cases return the results out of order if an index search is used in +executing the query. For example: Create a single column table. Insert +two rows with identical values. A query on the row id and the column will +produce results in a different order depending on whether an index is used. -If a txn that is attempting to remove a region page from a heap database is -aborted and another txn is trying to update that same page then it can -cause the original txn to abort. This is timing dependant. [#20939] diff --git a/dist/Makefile.in b/dist/Makefile.in index 0d319707..3328583d 100644 --- a/dist/Makefile.in +++ b/dist/Makefile.in @@ -107,6 +107,7 @@ libxso_major= $(libcxx_base)-$(LIBMAJOR)@SOSUFFIX@ ################################################## SQLFLAGS= -I$(builddir) -I$(builddir)/sql -I$(langdir)/sql/generated \ -D_HAVE_SQLITE_CONFIG_H @SQL_FLAGS@ +LIBSQLSO_LIBS= @LIBSQLSO_LIBS@ @LIBCSO_LIBS@ @LIBSO_LIBS@ libsql_base= libdb_sql libsql= $(libsql_base).a @@ -224,7 +225,7 @@ HASH_VRFY_OBJS=\ hash_verify@o@ HEAP_OBJS=\ heap@o@ heap_auto@o@ heap_backup@o@ heap_conv@o@ heap_method@o@ \ - heap_open@o@ heap_rec@o@ heap_reclaim@o@ heap_stat@o@ + heap_open@o@ heap_rec@o@ heap_reclaim@o@ heap_stat@o@ heap_upgrade@o@ HEAP_VRFY_OBJS=\ heap_verify@o@ QUEUE_OBJS=\ @@ -263,6 +264,7 @@ XA_OBJS=\ # object files in order to generate the additional objects in @FINAL_OBJS@. DTRACE_OBJS= @ADDITIONAL_OBJS@ @REPLACEMENT_OBJS@ @CRYPTO_OBJS@ \ + blob_fileops@o@ blob_page@o@ blob_stream@o@ blob_util@o@ \ clock@o@ crdel_auto@o@ crdel_rec@o@ db@o@ db_am@o@ db_auto@o@ \ db_backup@o@ db_byteorder@o@ db_cam@o@ db_cds@o@ db_compact@o@ \ db_compint@o@ db_conv@o@ db_copy@o@ db_dispatch@o@ db_dup@o@ \ @@ -285,7 +287,7 @@ DTRACE_OBJS= @ADDITIONAL_OBJS@ @REPLACEMENT_OBJS@ @CRYPTO_OBJS@ \ os_alloc@o@ os_clock@o@ os_cpu@o@ os_ctime@o@ os_config@o@ \ os_dir@o@ os_errno@o@ os_fid@o@ os_flock@o@ os_fsync@o@ \ os_getenv@o@ os_handle@o@ os_map@o@ os_method@o@ os_mkdir@o@ \ - os_open@o@ os_path@o@ os_pid@o@ os_rename@o@ os_root@o@ \ + os_open@o@ os_path@o@ os_pid@o@ os_rename@o@ os_rmdir@o@ os_root@o@ \ os_rpath@o@ os_rw@o@ os_seek@o@ os_stack@o@ os_stat@o@ \ os_tmpdir@o@ os_truncate@o@ os_uid@o@ os_unlink@o@ os_yield@o@ \ partition@o@ seq_stat@o@ sequence@o@ sha1@o@ snprintf@o@ txn@o@ \ @@ -296,14 +298,16 @@ DTRACE_OBJS= @ADDITIONAL_OBJS@ @REPLACEMENT_OBJS@ @CRYPTO_OBJS@ \ C_OBJS= $(DTRACE_OBJS) @FINAL_OBJS@ CUTEST_OBJS=\ - CuTest@o@ CuTests@o@ Runner@o@ TestChannel@o@ TestDbHotBackup@o@ \ - TestDbTuner@o@ TestEncryption@o@ TestEnvConfig@o@ TestEnvMethod@o@ \ - TestKeyExistErrorReturn@o@ TestPartial@o@ TestQueue@o@ \ + CuTest@o@ CuTests@o@ Runner@o@ TestCallbackSetterAndGetter@o@ \ + TestChannel@o@ TestDbHotBackup@o@ TestDbTuner@o@ TestEncryption@o@ \ + TestEnvConfig@o@ TestEnvMethod@o@ TestKeyExistErrorReturn@o@ \ + TestMutexAlignment@o@ TestPartial@o@ TestPartition@o@ \ + TestPreOpenSetterAndGetter@o@ TestQueue@o@ CXX_OBJS=\ - cxx_channel@o@ cxx_db@o@ cxx_dbc@o@ cxx_dbt@o@ cxx_env@o@ \ - cxx_except@o@ cxx_lock@o@ cxx_logc@o@ cxx_mpool@o@ cxx_multi@o@ \ - cxx_rid@o@ cxx_seq@o@ cxx_site@o@ cxx_txn@o@ + cxx_channel@o@ cxx_db@o@ cxx_dbc@o@ cxx_dbstream@o@ cxx_dbt@o@ \ + cxx_env@o@ cxx_except@o@ cxx_lock@o@ cxx_logc@o@ cxx_mpool@o@ \ + cxx_multi@o@ cxx_rid@o@ cxx_seq@o@ cxx_site@o@ cxx_txn@o@ CRYPTO_OBJS=\ aes_method@o@ crypto@o@ mt19937db@o@ rijndael-alg-fst@o@ \ @@ -424,6 +428,8 @@ JAVA_DBSRCS=\ $(JAVA_SLEEPYCAT)/db/DatabaseEntry.java \ $(JAVA_SLEEPYCAT)/db/DatabaseException.java \ $(JAVA_SLEEPYCAT)/db/DatabaseStats.java \ + $(JAVA_SLEEPYCAT)/db/DatabaseStream.java \ + $(JAVA_SLEEPYCAT)/db/DatabaseStreamConfig.java \ $(JAVA_SLEEPYCAT)/db/DatabaseType.java \ $(JAVA_SLEEPYCAT)/db/DeadlockException.java \ $(JAVA_SLEEPYCAT)/db/Environment.java \ @@ -458,6 +464,7 @@ JAVA_DBSRCS=\ $(JAVA_SLEEPYCAT)/db/LogVerifyConfig.java \ $(JAVA_SLEEPYCAT)/db/MemoryException.java \ $(JAVA_SLEEPYCAT)/db/MessageHandler.java \ + $(JAVA_SLEEPYCAT)/db/MetaCheckSumFailException.java \ $(JAVA_SLEEPYCAT)/db/MultipleNIODataEntry.java \ $(JAVA_SLEEPYCAT)/db/MultipleKeyNIODataEntry.java \ $(JAVA_SLEEPYCAT)/db/MultipleRecnoNIODataEntry.java \ @@ -495,6 +502,7 @@ JAVA_DBSRCS=\ $(JAVA_SLEEPYCAT)/db/ReplicationStatus.java \ $(JAVA_SLEEPYCAT)/db/ReplicationTimeoutType.java \ $(JAVA_SLEEPYCAT)/db/ReplicationTransport.java \ + $(JAVA_SLEEPYCAT)/db/ReplicationViewHandler.java \ $(JAVA_SLEEPYCAT)/db/RunRecoveryException.java \ $(JAVA_SLEEPYCAT)/db/SecondaryConfig.java \ $(JAVA_SLEEPYCAT)/db/SecondaryCursor.java \ @@ -521,6 +529,7 @@ JAVA_DBSRCS=\ $(JAVA_SLEEPYCAT)/db/internal/DbMpoolFile.java \ $(JAVA_SLEEPYCAT)/db/internal/DbSequence.java \ $(JAVA_SLEEPYCAT)/db/internal/DbSite.java \ + $(JAVA_SLEEPYCAT)/db/internal/DbStream.java \ $(JAVA_SLEEPYCAT)/db/internal/DbTxn.java \ $(JAVA_SLEEPYCAT)/db/internal/DbUtil.java \ $(JAVA_SLEEPYCAT)/db/internal/Dbc.java \ @@ -780,9 +789,9 @@ STL_OBJS=\ dbstl_container@o@ dbstl_resource_manager@o@ TCL_OBJS=\ - tcl_compat@o@ tcl_db@o@ tcl_db_pkg@o@ tcl_dbcursor@o@ tcl_env@o@ \ - tcl_internal@o@ tcl_lock@o@ tcl_log@o@ tcl_mp@o@ tcl_mutex@o@ \ - tcl_rep@o@ tcl_seq@o@ tcl_txn@o@ tcl_util@o@ + tcl_compat@o@ tcl_db@o@ tcl_db_pkg@o@ tcl_dbcursor@o@ tcl_dbstream@o@ \ + tcl_env@o@ tcl_internal@o@ tcl_lock@o@ tcl_log@o@ tcl_mp@o@ \ + tcl_mutex@o@ tcl_rep@o@ tcl_seq@o@ tcl_txn@o@ tcl_util@o@ TEST_MICRO_OBJS=\ b_curalloc@o@ b_curwalk@o@ b_del@o@ b_get@o@ b_inmem@o@ b_latch@o@ \ @@ -891,7 +900,7 @@ $(libsql_version): $(SQL_OBJS) # Shared SQL library. $(libsqlso_target): $(SQL_OBJS) - $(SOLINK) $(SOFLAGS) $(LDFLAGS) -o $@ $(SQL_OBJS) $(LIBCSO_LIBS) + $(SOLINK) $(SOFLAGS) $(LDFLAGS) -o $@ $(SQL_OBJS) $(LIBSQLSO_LIBS) $(RM) $(libsql) $(LN) -s .libs/$(libsql_version) $(libsql) @@ -1177,11 +1186,12 @@ uninstall_docs: CLEAN_LIST=\ StlTxnGuide TxnGuide TxnGuideInMemory berkeley_db_cxxsvc \ berkeley_db_svc cutest db_dump185 db_perf db_repsite db_reptest dbs \ - ex_access ex_apprec ex_btrec ex_bulk ex_dbclient ex_env ex_heap ex_lock \ + ex_access ex_apprec ex_blob ex_btrec ex_bulk ex_dbclient ex_env \ + ex_heap ex_lock \ ex_mpool ex_rep_base ex_rep_chan ex_rep_gsg_repmgr ex_rep_gsg_simple \ ex_rep_mgr ex_sequence ex_stream ex_thread ex_tpcb \ example_database_load example_database_read excxx_access \ - excxx_btrec excxx_env excxx_example_database_load \ + excxx_btrec excxx_bulk excxx_env excxx_example_database_load \ excxx_example_database_read excxx_lock excxx_mpool \ excxx_repquote excxx_repquote_gsg_repmgr excxx_repquote_gsg_simple \ excxx_sequence excxx_tpcb ex_sql_binding ex_sql_fts3 ex_sql_index \ @@ -1316,6 +1326,8 @@ CuTests@o@: $(testdir)/c/cutest/CuTests.c $(CC) $(CUTEST_FLAGS) $? Runner@o@: $(testdir)/c/cutest/Runner.c $(CC) $(CUTEST_FLAGS) $? +TestCallbackSetterAndGetter@o@: $(testdir)/c/suites/TestCallbackSetterAndGetter.c + $(CC) $(CUTEST_FLAGS) $? TestChannel@o@: $(testdir)/c/suites/TestChannel.c $(CC) $(CUTEST_FLAGS) $? TestDbHotBackup@o@: $(testdir)/c/suites/TestDbHotBackup.c @@ -1330,8 +1342,14 @@ TestEnvMethod@o@: $(testdir)/c/suites/TestEnvMethod.c $(CC) $(CUTEST_FLAGS) $? TestKeyExistErrorReturn@o@: $(testdir)/c/suites/TestKeyExistErrorReturn.c $(CC) $(CUTEST_FLAGS) $? +TestMutexAlignment@o@: $(testdir)/c/suites/TestMutexAlignment.c + $(CC) $(CUTEST_FLAGS) $? TestPartial@o@: $(testdir)/c/suites/TestPartial.c $(CC) $(CUTEST_FLAGS) $? +TestPartition@o@: $(testdir)/c/suites/TestPartition.c + $(CC) $(CUTEST_FLAGS) $? +TestPreOpenSetterAndGetter@o@: $(testdir)/c/suites/TestPreOpenSetterAndGetter.c + $(CC) $(CUTEST_FLAGS) $? TestQueue@o@: $(testdir)/c/suites/TestQueue.c $(CC) $(CUTEST_FLAGS) $? @@ -1340,6 +1358,13 @@ cutest: $(CUTEST_OBJS) $(DEF_LIB) db_tuner.lo $(LDFLAGS) $(CUTEST_OBJS) $(DEF_LIB) $(TEST_LIBS) $(LIBS) $(POSTLINK) $@ +TEST_FAILOBJS=test_failchk@o@ +test_failchk@o@: $(testdir)/c/test_failchk.c + $(CC) $(CUTEST_FLAGS) $? +test_failchk: $(TEST_FAILOBJS) $(DEF_LIB) + $(CCLINK) -o $@ \ + $(LDFLAGS) $(TEST_FAILOBJS) $(DEF_LIB) $(TEST_LIBS) $(LIBS) + db_repsite@o@: $(testdir)/repmgr/db_repsite.cpp $(CXX) $(CXXFLAGS) $? DBREPSITE_OBJS=db_repsite@o@ @@ -1451,13 +1476,14 @@ test_mutex: test_mutex@o@ $(DEF_LIB) ################################################## # Targets for example programs. ################################################## -examples_c: ex_access ex_apprec ex_btrec ex_bulk ex_env ex_heap ex_lock \ +examples_c: ex_access ex_apprec ex_blob ex_btrec ex_bulk ex_env \ + ex_heap ex_lock \ ex_mpool ex_rep_base ex_rep_chan ex_rep_gsg_repmgr ex_rep_gsg_simple \ ex_rep_mgr ex_sequence ex_stream ex_thread ex_tpcb \ example_database_load example_database_read txn_guide txn_guide_inmemory -examples_cxx: TxnGuide TxnGuideInMemory excxx_access \ - excxx_example_database_load excxx_example_database_read \ +examples_cxx: TxnGuide TxnGuideInMemory excxx_access excxx_btrec excxx_bulk \ + excxx_env excxx_example_database_load excxx_example_database_read \ excxx_lock excxx_mpool excxx_repquote excxx_repquote_gsg_repmgr \ excxx_repquote_gsg_simple excxx_sequence excxx_tpcb @@ -1493,6 +1519,12 @@ ex_apprec: $(EX_APPREC_OBJS) $(DEF_LIB) $(CCLINK) -o $@ \ $(LDFLAGS) $(EX_APPREC_OBJS) $(DEF_LIB) $(TEST_LIBS) $(LIBS) +ex_blob@o@: $(exampledir)/c/ex_blob.c + $(CC) $(CFLAGS) $? +ex_blob: ex_blob@o@ $(DEF_LIB) + $(CCLINK) -o $@ $(LDFLAGS) ex_blob@o@ $(DEF_LIB) $(LIBS) + $(POSTLINK) $@ + ex_btrec@o@: $(exampledir)/c/ex_btrec.c $(CC) $(CFLAGS) $? ex_btrec: ex_btrec@o@ $(DEF_LIB) @@ -1656,6 +1688,12 @@ excxx_btrec: BtRecExample@o@ $(DEF_LIB_CXX) $(CXXLINK) -o $@ $(LDFLAGS) BtRecExample@o@ $(DEF_LIB_CXX) $(LIBS) $(POSTLINK) $@ +BulkExample@o@: $(exampledir)/cxx/BulkExample.cpp + $(CXX) $(CXXFLAGS) $? +excxx_bulk: BulkExample@o@ $(DEF_LIB_CXX) + $(CXXLINK) -o $@ $(LDFLAGS) BulkExample@o@ $(DEF_LIB_CXX) $(LIBS) + $(POSTLINK) $@ + EnvExample@o@: $(exampledir)/cxx/EnvExample.cpp $(CXX) $(CXXFLAGS) $? excxx_env: EnvExample@o@ $(DEF_LIB_CXX) @@ -1845,6 +1883,14 @@ ex_sql_transaction@o@: $(exampledir)/sql/c/ex_sql_transaction.c ################################################## aes_method@o@: $(srcdir)/crypto/aes_method.c $(CC) $(CFLAGS) $? +blob_fileops@o@: $(srcdir)/blob/blob_fileops.c + $(CC) $(CFLAGS) $? +blob_page@o@: $(srcdir)/blob/blob_page.c + $(CC) $(CFLAGS) $? +blob_stream@o@: $(srcdir)/blob/blob_stream.c + $(CC) $(CFLAGS) $? +blob_util@o@: $(srcdir)/blob/blob_util.c + $(CC) $(CFLAGS) $? bt_compare@o@: $(srcdir)/btree/bt_compare.c $(CC) $(CFLAGS) $? bt_compress@o@: $(srcdir)/btree/bt_compress.c @@ -2095,6 +2141,8 @@ heap_stat@o@: $(srcdir)/heap/heap_stat.c $(CC) $(CFLAGS) $? heap_stub@o@: $(srcdir)/heap/heap_stub.c $(CC) $(CFLAGS) $? +heap_upgrade@o@: $(srcdir)/heap/heap_upgrade.c + $(CC) $(CFLAGS) $? heap_verify@o@: $(srcdir)/heap/heap_verify.c $(CC) $(CFLAGS) $? hmac@o@: $(srcdir)/hmac/hmac.c @@ -2193,8 +2241,6 @@ mut_alloc@o@: $(srcdir)/mutex/mut_alloc.c $(CC) $(CFLAGS) $? mut_failchk@o@: $(srcdir)/mutex/mut_failchk.c $(CC) $(CFLAGS) $? -mut_fcntl@o@: $(srcdir)/mutex/mut_fcntl.c - $(CC) $(CFLAGS) $? mut_method@o@: $(srcdir)/mutex/mut_method.c $(CC) $(CFLAGS) $? mut_pthread@o@: $(srcdir)/mutex/mut_pthread.c @@ -2259,6 +2305,8 @@ os_qnx_open@o@: $(srcdir)/os_qnx/os_qnx_open.c $(CC) $(CFLAGS) $? os_rename@o@: $(srcdir)/@OSDIR@/os_rename.c $(CC) $(CFLAGS) $? +os_rmdir@o@: $(srcdir)/@OSDIR@/os_rmdir.c + $(CC) $(CFLAGS) $? os_root@o@: $(srcdir)/os/os_root.c $(CC) $(CFLAGS) $? os_rpath@o@: $(srcdir)/os/os_rpath.c @@ -2419,6 +2467,8 @@ cxx_db@o@: $(langdir)/cxx/cxx_db.cpp $(CXX) $(CXXFLAGS) $? cxx_dbc@o@: $(langdir)/cxx/cxx_dbc.cpp $(CXX) $(CXXFLAGS) $? +cxx_dbstream@o@: $(langdir)/cxx/cxx_dbstream.cpp + $(CXX) $(CXXFLAGS) $? cxx_dbt@o@: $(langdir)/cxx/cxx_dbt.cpp $(CXX) $(CXXFLAGS) $? cxx_env@o@: $(langdir)/cxx/cxx_env.cpp @@ -2475,6 +2525,8 @@ tcl_db_pkg@o@: $(TCL_SRCDIR)/tcl_db_pkg.c $(CC) $(CFLAGS) $(TCL_INCLUDE_SPEC) $? tcl_dbcursor@o@: $(TCL_SRCDIR)/tcl_dbcursor.c $(CC) $(CFLAGS) $(TCL_INCLUDE_SPEC) $? +tcl_dbstream@o@: $(TCL_SRCDIR)/tcl_dbstream.c + $(CC) $(CFLAGS) $(TCL_INCLUDE_SPEC) $? tcl_env@o@: $(TCL_SRCDIR)/tcl_env.c $(CC) $(CFLAGS) $(TCL_INCLUDE_SPEC) $? tcl_internal@o@: $(TCL_SRCDIR)/tcl_internal.c diff --git a/dist/RELEASE b/dist/RELEASE index 54896523..d323b470 100644 --- a/dist/RELEASE +++ b/dist/RELEASE @@ -1,16 +1,16 @@ # $Id$ -DB_VERSION_FAMILY=11 -DB_VERSION_LETTER="g" -DB_VERSION_RELEASE=2 -DB_VERSION_MAJOR=5 -DB_VERSION_MINOR=3 -DB_VERSION_PATCH=21 +DB_VERSION_FAMILY=12 +DB_VERSION_LETTER="c" +DB_VERSION_RELEASE=1 +DB_VERSION_MAJOR=6 +DB_VERSION_MINOR=1 +DB_VERSION_PATCH=23 DB_VERSION="$DB_VERSION_MAJOR.$DB_VERSION_MINOR.$DB_VERSION_PATCH" DB_VERSION_FULL="$DB_VERSION_FAMILY.$DB_VERSION_RELEASE.$DB_VERSION_MAJOR.$DB_VERSION_MINOR.$DB_VERSION_PATCH" DB_VERSION_UNIQUE_NAME=`printf "_%d%03d" $DB_VERSION_MAJOR $DB_VERSION_MINOR` -DB_RELEASE_DATE="May 11, 2012" +DB_RELEASE_DATE="February 17, 2015" DB_VERSION_STRING="Berkeley DB $DB_VERSION: ($DB_RELEASE_DATE)" DB_VERSION_FULL_STRING="Berkeley DB $DB_VERSION_FAMILY$DB_VERSION_LETTER Release $DB_VERSION_RELEASE, library version $DB_VERSION_FULL: ($DB_RELEASE_DATE)" diff --git a/dist/aclocal/clock.m4 b/dist/aclocal/clock.m4 index a978ffa5..a0c09112 100644 --- a/dist/aclocal/clock.m4 +++ b/dist/aclocal/clock.m4 @@ -3,7 +3,7 @@ # Configure clocks and timers. AC_DEFUN(AC_TIMERS, [ -AC_CHECK_FUNCS(gettimeofday localtime time strftime) +AC_CHECK_FUNCS(gettimeofday localtime localtime_r time strftime) # AIX 4.3 will link applications with calls to clock_gettime, but the # calls always fail. @@ -20,12 +20,14 @@ esac # existence to mean the clock really exists. AC_CACHE_CHECK([for clock_gettime monotonic clock], db_cv_clock_monotonic, [ AC_TRY_RUN([ +#include <time.h> #include <sys/time.h> -main() { +int main() { struct timespec t; return (clock_gettime(CLOCK_MONOTONIC, &t) != 0); }], db_cv_clock_monotonic=yes, db_cv_clock_monotonic=no, AC_TRY_LINK([ +#include <time.h> #include <sys/time.h>], [ struct timespec t; clock_gettime(CLOCK_MONOTONIC, &t); diff --git a/dist/aclocal/mmap.m4 b/dist/aclocal/mmap.m4 index 727c6c35..cb20228c 100644 --- a/dist/aclocal/mmap.m4 +++ b/dist/aclocal/mmap.m4 @@ -1,4 +1,4 @@ -# Copyright (c) 2011, 2012 Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2011, 2015 Oracle and/or its affiliates. All rights reserved. # Detect mmap capability: If the file underlying an mmap is extended, # does the addressable memory grow too? @@ -28,8 +28,10 @@ if test "$mmap_ok" = "yes" ; then /* Not all these includes are needed, but the minimal set varies from * system to system. */ + #include <stdlib.h> #include <stdio.h> #include <string.h> + #include <unistd.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> @@ -41,18 +43,25 @@ if test "$mmap_ok" = "yes" ; then #ifndef MAP_FAILED #define MAP_FAILED (-1) #endif + /* Prevent unused variabl warnings by setting and using it. */ + #define COMPQUIET(n, v) do { \ + (n) = (v); \ + (n) = (n); \ + } while (0) - int catch_sig(sig) + + void catch_sig(sig) int sig; { + COMPQUIET(sig,0); exit(1); } - main() { + int main() { const char *underlying; unsigned gapsize; char *base; - int count, fd, i, mode, open_flags, ret, total_size; + int count, fd, i, mode, open_flags, total_size; char buf[TEST_MMAP_BUFSIZE]; gapsize = 1024; diff --git a/dist/aclocal/mutex.m4 b/dist/aclocal/mutex.m4 index 81f1ea8d..9e02c4af 100644 --- a/dist/aclocal/mutex.m4 +++ b/dist/aclocal/mutex.m4 @@ -5,12 +5,12 @@ AC_DEFUN(AM_PTHREADS_SHARED, [ AC_TRY_RUN([ #include <stdlib.h> #include <pthread.h> -main() { +int main() { pthread_cond_t cond; pthread_mutex_t mutex; pthread_condattr_t condattr; pthread_mutexattr_t mutexattr; - exit ( + return ( pthread_condattr_init(&condattr) || pthread_condattr_setpshared(&condattr, PTHREAD_PROCESS_SHARED) || pthread_mutexattr_init(&mutexattr) || @@ -31,7 +31,7 @@ AC_TRY_LINK([ pthread_mutex_t mutex; pthread_condattr_t condattr; pthread_mutexattr_t mutexattr; - exit ( + return ( pthread_condattr_init(&condattr) || pthread_condattr_setpshared(&condattr, PTHREAD_PROCESS_SHARED) || pthread_mutexattr_init(&mutexattr) || @@ -49,12 +49,12 @@ AC_DEFUN(AM_PTHREADS_PRIVATE, [ AC_TRY_RUN([ #include <stdlib.h> #include <pthread.h> -main() { +int main() { pthread_cond_t cond; pthread_mutex_t mutex; pthread_condattr_t condattr; pthread_mutexattr_t mutexattr; - exit ( + return ( pthread_condattr_init(&condattr) || pthread_mutexattr_init(&mutexattr) || pthread_cond_init(&cond, &condattr) || @@ -73,7 +73,7 @@ AC_TRY_LINK([ pthread_mutex_t mutex; pthread_condattr_t condattr; pthread_mutexattr_t mutexattr; - exit ( + return ( pthread_condattr_init(&condattr) || pthread_mutexattr_init(&mutexattr) || pthread_cond_init(&cond, &condattr) || @@ -89,10 +89,10 @@ AC_DEFUN(AM_PTHREADS_CONDVAR_DUPINITCHK, [ AC_TRY_RUN([ #include <stdlib.h> #include <pthread.h> -main() { +int main() { pthread_cond_t cond; pthread_condattr_t condattr; - exit(pthread_condattr_init(&condattr) || + return (pthread_condattr_init(&condattr) || pthread_cond_init(&cond, &condattr) || pthread_cond_init(&cond, &condattr)); }], [db_cv_pthread_condinit_dupgood="yes"], @@ -102,7 +102,7 @@ AC_TRY_LINK([ #include <pthread.h>], [ pthread_cond_t cond; pthread_condattr_t condattr; - exit(pthread_condattr_init(&condattr) || + return (pthread_condattr_init(&condattr) || pthread_cond_init(&cond, &condattr)); ], [db_cv_pthread_condinit_dupgood="yes"], [db_cv_pthread_condinit_dupgood="no"]))]) @@ -110,10 +110,10 @@ AC_DEFUN(AM_PTHREADS_RWLOCKVAR_DUPINITCHK, [ AC_TRY_RUN([ #include <stdlib.h> #include <pthread.h> -main() { +int main() { pthread_rwlock_t rwlock; pthread_rwlockattr_t rwlockattr; - exit(pthread_rwlockattr_init(&rwlockattr) || + return (pthread_rwlockattr_init(&rwlockattr) || pthread_rwlock_init(&rwlock, &rwlockattr) || pthread_rwlock_init(&rwlock, &rwlockattr)); }], [db_cv_pthread_rwlockinit_dupgood="yes"], @@ -123,7 +123,7 @@ AC_TRY_LINK([ #include <pthread.h>], [ pthread_rwlock_t rwlock; pthread_rwlockattr_t rwlockattr; - exit(pthread_rwlockattr_init(&rwlockattr) || + exit (pthread_rwlockattr_init(&rwlockattr) || pthread_rwlock_init(&rwlock, &rwlockattr)); ], [db_cv_pthread_rwlockinit_dupgood="yes"], [db_cv_pthread_rwlockinit_dupgood="no"]))]) @@ -282,7 +282,7 @@ if test "$db_cv_mutex" = no; then # x86/gcc: FreeBSD, NetBSD, BSD/OS, Linux AC_TRY_COMPILE(,[ #if (defined(i386) || defined(__i386__)) && defined(__GNUC__) - exit(0); + return (0); #else FAIL TO COMPILE/LINK #endif @@ -291,7 +291,7 @@ if test "$db_cv_mutex" = no; then # x86_64/gcc: FreeBSD, NetBSD, BSD/OS, Linux AC_TRY_COMPILE(,[ #if (defined(x86_64) || defined(__x86_64__)) && defined(__GNUC__) - exit(0); + return (0); #else FAIL TO COMPILE/LINK #endif @@ -314,7 +314,7 @@ if test "$db_cv_mutex" = no; then AC_TRY_COMPILE(,[ #if defined(__sparc__) && defined(__GNUC__) asm volatile ("membar #StoreStore|#StoreLoad|#LoadStore"); - exit(0); + return (0); #else FAIL TO COMPILE/LINK #endif @@ -356,7 +356,7 @@ AC_TRY_LINK([ msem_init(&x, 0); msem_lock(&x, 0); msem_unlock(&x, 0); - exit(0); + return (0); #else FAIL TO COMPILE/LINK #endif @@ -373,7 +373,7 @@ AC_TRY_LINK([ msem_init(&x, 0); msem_lock(&x, 0); msem_unlock(&x, 0); - exit(0); + return (0); ], [db_cv_mutex=UNIX/msem_init]) fi @@ -395,7 +395,7 @@ fi if test "$db_cv_mutex" = no; then AC_TRY_COMPILE(,[ #if defined(__USLC__) - exit(0); + return (0); #else FAIL TO COMPILE/LINK #endif @@ -452,7 +452,7 @@ fi if test "$db_cv_mutex" = no; then AC_TRY_COMPILE(,[ #if defined(__alpha) && defined(__DECC) - exit(0); + return (0); #else FAIL TO COMPILE/LINK #endif @@ -463,7 +463,7 @@ fi if test "$db_cv_mutex" = no; then AC_TRY_COMPILE(,[ #if defined(__alpha) && defined(__GNUC__) - exit(0); + return (0); #else FAIL TO COMPILE/LINK #endif @@ -474,7 +474,7 @@ fi if test "$db_cv_mutex" = no; then AC_TRY_COMPILE(,[ #if defined(__arm__) && defined(__GNUC__) - exit(0); + return (0); #else FAIL TO COMPILE/LINK #endif @@ -485,7 +485,7 @@ fi if test "$db_cv_mutex" = no; then AC_TRY_COMPILE(,[ #if (defined(__mips) || defined(__mips__)) && defined(__GNUC__) - exit(0); + return (0); #else FAIL TO COMPILE/LINK #endif @@ -496,7 +496,7 @@ fi if test "$db_cv_mutex" = no; then AC_TRY_COMPILE(,[ #if (defined(__hppa) || defined(__hppa__)) && defined(__GNUC__) - exit(0); + return (0); #else FAIL TO COMPILE/LINK #endif @@ -507,7 +507,7 @@ fi if test "$db_cv_mutex" = no; then AC_TRY_COMPILE(,[ #if (defined(__powerpc__) || defined(__ppc__)) && defined(__GNUC__) - exit(0); + return (0); #else FAIL TO COMPILE/LINK #endif @@ -518,7 +518,7 @@ fi if test "$db_cv_mutex" = no; then AC_TRY_COMPILE(,[ #if (defined(mc68020) || defined(sun3)) && defined(__GNUC__) - exit(0); + return (0); #else FAIL TO COMPILE/LINK #endif @@ -529,7 +529,7 @@ fi if test "$db_cv_mutex" = no; then AC_TRY_COMPILE(,[ #if defined(__MVS__) && defined(__IBMC__) - exit(0); + return (0); #else FAIL TO COMPILE/LINK #endif @@ -540,7 +540,7 @@ fi if test "$db_cv_mutex" = no; then AC_TRY_COMPILE(,[ #if defined(__s390__) && defined(__GNUC__) - exit(0); + return (0); #else FAIL TO COMPILE/LINK #endif @@ -551,7 +551,7 @@ fi if test "$db_cv_mutex" = no; then AC_TRY_COMPILE(,[ #if defined(__ia64) && defined(__GNUC__) - exit(0); + return (0); #else FAIL TO COMPILE/LINK #endif @@ -562,7 +562,7 @@ fi if test "$db_cv_mutex" = no; then AC_TRY_COMPILE(,[ #if defined(_UTS) - exit(0); + return (0); #else FAIL TO COMPILE/LINK #endif @@ -910,9 +910,9 @@ fi if test "$db_cv_atomic" = no; then AC_TRY_COMPILE(,[ #if ((defined(i386) || defined(__i386__)) && defined(__GNUC__)) - exit(0); + return (0); #elif ((defined(x86_64) || defined(__x86_64__)) && defined(__GNUC__)) - exit(0); + return (0); #else FAIL TO COMPILE/LINK #endif diff --git a/dist/aclocal/options.m4 b/dist/aclocal/options.m4 index c007fba6..9bf6d339 100644 --- a/dist/aclocal/options.m4 +++ b/dist/aclocal/options.m4 @@ -175,6 +175,13 @@ AC_ARG_ENABLE(debug_wop, [db_cv_debug_wop="$enable_debug_wop"], [db_cv_debug_wop="no"]) AC_MSG_RESULT($db_cv_debug_wop) +AC_MSG_CHECKING(if --enable-error_history option specified) +AC_ARG_ENABLE(error_history, + [AC_HELP_STRING([--enable-error_history], + [Build a version that records extra information about errors])], + [db_cv_error_history="$enable_error_history"], [db_cv_error_history="no"]) +AC_MSG_RESULT($db_cv_error_history) + AC_MSG_CHECKING(if --enable-diagnostic option specified) AC_ARG_ENABLE(diagnostic, [AC_HELP_STRING([--enable-diagnostic], @@ -354,6 +361,21 @@ AC_ARG_ENABLE(perfmon_statistics, [db_cv_perfmon_statistics="$enable_perfmon_statistics"], [db_cv_perfmon_statistics="no"]) AC_MSG_RESULT($db_cv_perfmon_statistics) +# Application which use failchk can choose to inform all threads waiting on +# mutexes to be notified as soon as possible after a crash thread is detected. +AC_MSG_CHECKING(if --enable-failchk_broadcast option specified) +AC_ARG_ENABLE(failchk_broadcast, + [AC_HELP_STRING([--enable-failchk_broadcast], + [Add support for immediately broadcasting failchk events to all waiting threads])], + [db_cv_failchk_broadcast="$enable_failchk_broadcast"], [db_cv_failchk_broadcast="no"]) +AC_MSG_RESULT($db_cv_failchk_broadcast) +if test "$db_cv_failchk_broadcast" = "yes"; then + AC_DEFINE(HAVE_FAILCHK_BROADCAST) + AH_TEMPLATE(HAVE_FAILCHK_BROADCAST, + [Define to 1 for failchk to inform all waiting threads about crashes.]) + ADDITIONAL_PROGS="$ADDITIONAL_PROGS test_failchk" +fi + AC_MSG_CHECKING(if --enable-uimutexes option specified) AC_ARG_ENABLE(uimutexes, [AC_HELP_STRING([--enable-uimutexes], @@ -388,30 +410,6 @@ if test "$db_cv_atomicfileread" = "yes"; then [Define to 1 if platform reads and writes files atomically.]) fi -# Cryptography support. -# Until Berkeley DB 5.0, this was a simple yes/no decision. -# With the addition of support for Intel Integrated Performance Primitives (ipp) -# things are more complex. There are now three options: -# 1) don't build cryptography (no) -# 2) build using the built-in software implementation (yes) -# 3) build using the Intel IPP implementation (ipp) -# We handle this by making the primary configuration method: -# --with-cryptography={yes|no|ipp} -# which defaults to yes. The old enable/disable-cryptography argument is still -# supported for backwards compatibility. -AC_MSG_CHECKING(if --with-cryptography option specified) -AC_ARG_ENABLE(cryptography, [], [], enableval=$db_cv_build_full) -enable_cryptography="$enableval" -AC_ARG_WITH([cryptography], - AC_HELP_STRING([--with-cryptography=yes|no|ipp], [Build database cryptography support @<:@default=yes@:>@.]), - [], [with_cryptography=$enable_cryptography]) -case "$with_cryptography" in -yes|no|ipp) ;; -*) AC_MSG_ERROR([unknown --with-cryptography argument \'$with_cryptography\']) ;; -esac -db_cv_build_cryptography="$with_cryptography" -AC_MSG_RESULT($db_cv_build_cryptography) - AC_MSG_CHECKING(if --with-mutex=MUTEX option specified) AC_ARG_WITH(mutex, [AC_HELP_STRING([--with-mutex=MUTEX], @@ -480,6 +478,40 @@ if test "$db_cv_jdbc" = "yes" -a "$db_cv_sql" = "no"; then db_cv_sql=$db_cv_jdbc fi +# Cryptography support. +# Until Berkeley DB 5.0, this was a simple yes/no decision. +# With the addition of support for Intel Integrated Performance Primitives (ipp) +# things are more complex. There are now three options: +# 1) don't build cryptography (no) +# 2) build using the built-in software implementation (yes) +# 3) build using the Intel IPP implementation (ipp) +# We handle this by making the primary configuration method: +# --with-cryptography={yes|no|ipp} +# which defaults to yes, unless building the SQL library(--enable-sql). +# The old enable/disable-cryptography argument is still +# supported for backwards compatibility. +AC_MSG_CHECKING(if --with-cryptography option specified) +build_cryptography="$db_cv_build_full"; +if test "$db_cv_sql" = "yes" -a "$build_cryptography" = "yes"; then + build_cryptography="no"; +fi +AC_ARG_ENABLE(cryptography, [], [], [enableval=$build_cryptography]) +enable_cryptography="$enableval" +AC_ARG_WITH([cryptography], + AC_HELP_STRING([--with-cryptography=yes|no|ipp], [Build database cryptography support. The default value is "yes", unless building the SQL library.]), + [], [with_cryptography=$enable_cryptography]) +case "$with_cryptography" in +yes|no|ipp) ;; +*) AC_MSG_ERROR([unknown --with-cryptography argument \'$with_cryptography\']) ;; +esac +db_cv_build_cryptography="$with_cryptography" +if test -d "$topdir/src/crypto" ; then + AC_MSG_RESULT($db_cv_build_cryptography) +else + db_cv_build_cryptography="no" + AC_MSG_WARN(Ignoring --with-cryptography flag value. The NC package builds a Berkeley DB library that does not support encryption.) +fi + # Testing requires Tcl. if test "$db_cv_test" = "yes" -a "$db_cv_tcl" = "no"; then AC_MSG_ERROR([--enable-test requires --enable-tcl]) diff --git a/dist/aclocal/sequence.m4 b/dist/aclocal/sequence.m4 index 6e99b936..fffdcc44 100644 --- a/dist/aclocal/sequence.m4 +++ b/dist/aclocal/sequence.m4 @@ -43,7 +43,9 @@ AC_DEFUN(AM_SEQUENCE_CONFIGURE, [ # test, which won't test for the appropriate printf format strings. if test "$db_cv_build_sequence" = "yes"; then AC_TRY_RUN([ - main() { + #include <stdio.h> + #include <string.h> + int main() { $db_cv_seq_type l; unsigned $db_cv_seq_type u; char buf@<:@100@:>@; @@ -59,7 +61,9 @@ AC_DEFUN(AM_SEQUENCE_CONFIGURE, [ return (1); return (0); }],, [db_cv_build_sequence="no"], - AC_TRY_LINK(,[ + AC_TRY_LINK([ + #include <stdio.h> + #include <string.h>],[ $db_cv_seq_type l; unsigned $db_cv_seq_type u; char buf@<:@100@:>@; diff --git a/dist/aclocal/sql.m4 b/dist/aclocal/sql.m4 index c43edb8d..7b27bf8b 100644 --- a/dist/aclocal/sql.m4 +++ b/dist/aclocal/sql.m4 @@ -91,7 +91,12 @@ esac # !!! END COPIED from autoconf distribution sqlite_dir=$srcdir/../lang/sql/sqlite -(cd sql && eval "\$SHELL ../$sqlite_dir/configure --disable-option-checking $ac_sub_configure_args CPPFLAGS=\"-I.. $CPPFLAGS\" --enable-amalgamation=$db_cv_sql_amalgamation --enable-readline=$with_readline" && cat build_config.h >> config.h) || exit 1 +orig_CPPFLAGS="$CPPFLAGS" +jdbc_variables="" +if test "$db_cv_build_cryptography" = "yes"; then + CPPFLAGS="$CPPFLAGS -DSQLITE_HAS_CODEC=1" +fi +(cd sql && eval "\$SHELL ../$sqlite_dir/configure --disable-option-checking $ac_sub_configure_args CPPFLAGS=\"-I.. $CPPFLAGS\" --enable-amalgamation=$db_cv_sql_amalgamation --enable-readline=$with_readline " && cat build_config.h >> config.h) || exit 1 # Configure JDBC if --enable-jdbc if test "$db_cv_jdbc" != "no"; then @@ -121,7 +126,6 @@ if test "$db_cv_jdbc" != "no"; then test "$prefix" != "" && jdbc_args="--prefix=$prefix --with-jardir=$prefix/jar" test "$enable_shared" != "" && jdbc_args="$jdbc_args --enable-shared=$enable_shared" test "$enable_static" != "" && jdbc_args="$jdbc_args --enable-static=$enable_static" - test "$cross_compiling" = "yes" && jdbc_args="$jdbc_args --build=$build --host=$host " # 1. The build directory is build_unix/jdbc, so the include paths are relative # to that. @@ -132,6 +136,7 @@ if test "$db_cv_jdbc" != "no"; then $CFLAGS $CPPFLAGS\"" # Set LDFLAGS for JDBC driver test "$LDFLAGS" != "" && jdbc_flags="$jdbc_flags LDFLAGS=\"$LDFLAGS\"" + test "$db_cv_build_cryptography" = "yes" && jdbc_flags="$jdbc_flags HAVE_SQLITE3_KEY=1" # Copy ../lang/sql/jdbc to build_unix/ test ! -d jdbc && cp -r $jdbc_dir . @@ -146,4 +151,6 @@ if test "$db_cv_jdbc" != "no"; then sed "s/@BDB_LIB@/$BDB_LIB/g" Makefile.in.tmp > Makefile.in eval "\$SHELL ./configure --with-sqlite3=../../lang/sql/generated $jdbc_args $jdbc_flags" fi + +CPPFLAGS="$orig_CPPFLAGS" ]) diff --git a/dist/aclocal/types.m4 b/dist/aclocal/types.m4 index c3a2b78d..af7b5354 100644 --- a/dist/aclocal/types.m4 +++ b/dist/aclocal/types.m4 @@ -180,6 +180,13 @@ AC_SUBST(FILE_t_decl) AC_CHECK_TYPE(FILE *,, AC_MSG_ERROR([No FILE type.]), $db_includes) AC_SUBST(off_t_decl) AC_CHECK_TYPE(off_t,, AC_MSG_ERROR([No off_t type.]), $db_includes) +AC_CHECK_SIZEOF(off_t,, $db_includes) + +# db_off_t should be set to a signed integer type that is the same +# size as off_t +AC_SUBST(db_off_t_decl) +AC_CHECK_TYPE(db_off_t,, + [AM_SEARCH_SSIZES(db_off_t_decl, db_off_t, $ac_cv_sizeof_off_t)]) AC_SUBST(pid_t_decl) AC_CHECK_TYPE(pid_t,, AC_MSG_ERROR([No pid_t type.]), $db_includes) AC_SUBST(size_t_decl) diff --git a/dist/adodotnet/adapt_SQLite.Interop.2008.xq.in b/dist/adodotnet/adapt_SQLite.Interop.2008.xq.in index 8079bf1f..45e8210f 100644 --- a/dist/adodotnet/adapt_SQLite.Interop.2008.xq.in +++ b/dist/adodotnet/adapt_SQLite.Interop.2008.xq.in @@ -24,7 +24,7 @@ declare function local:getFileList($fileList) }; let $root := VisualStudioProject -let $isWinCE := fn:contains($root/@Keyword, 'WinCE') +let $isWinCE := fn:contains($root/@Name, '.CE.') let $fileList := if ($isWinCE) then ($WINCE_FILES) else ($WINDOWS_FILES) let $cflags := if ($isWinCE) then ($WINCE_FLAGS) else ($WINDOWS_FLAGS) let $includes := if ($isWinCE) then ($WINCE_INCLUDE) else ($WINDOWS_INCLUDE) @@ -49,12 +49,17 @@ return let $AdditionalIncludeDirectories := $VCCLCompilerTool/@AdditionalIncludeDirectories let $WarningLevel := $VCCLCompilerTool/@WarningLevel let $AdditionalDependencies := $VCLinkerTool/@AdditionalDependencies + let $iswincenode := (fn:contains($config/@Name, 'Pocket PC 2003 (ARMV4)') or + fn:contains($config/@Name, 'Windows Mobile 5.0 Pocket PC SDK (ARMV4I)') or + fn:contains($config/@Name, 'Windows Mobile 5.0 Smartphone SDK (ARMV4I)') or + fn:contains($config/@Name, 'Smartphone 2003 (ARMV4)') or + fn:contains($config/@Name, 'Windows Mobile 6 Professional SDK (ARMV4I)') or + fn:contains($config/@Name, 'Windows Mobile 6.5.3 Professional DTK (ARMV4I)')) return ( (: For Win32/x64/WinCE :) if (fn:contains($config/@Name, "Win32") or - fn:contains($config/@Name, "x64") or - fn:contains($config/@Name, $WINCE_PLATFORM_NAME)) then ( + fn:contains($config/@Name, "x64") or $iswincenode) then ( (: Update PreprocessorDefinitions :) ( @@ -63,12 +68,7 @@ return if (fn:contains($config/@Name, 'Debug')) then ( $DEBUG_ADDITIONAL_FLAGS ) else () - let $combinedFlags := - if (fn:contains($config/@Name, $WINCE_PLATFORM_NAME)) then ( - fn:concat($cflags, $additionalFlags) - ) else ( - fn:concat($node/string(), $cflags, $additionalFlags) - ) + let $combinedFlags := fn:concat($node/string(), $cflags, $additionalFlags) return replace value of node $node with $combinedFlags ), @@ -105,32 +105,13 @@ return replace value of node $node with '3' ), - (: Clean VCManifestTool for Windows CE/Mobile) :) - ( - if (fn:contains($config/@Name, $WINCE_PLATFORM_NAME)) then ( - for $node in $VCManifestTool - return replace node $node with - <Tool Name="VCManifestTool" EmbedManifest="true"/> - ) else () - ), - (: Set LinkTool for Windows CE/Mobile:) ( - if (fn:contains($config/@Name, $WINCE_PLATFORM_NAME)) then ( + if ($iswincenode) then ( for $node in $VCLinkerTool (: Update the attribute if exist. Otherwise, insert it:) return ( - ( (: Set TargetMachine to Multi-threaded (/MT):) - let $value := $WINCE_TARGET_MACHINE - let $attr := $node/@TargetMachine - return - if (fn:exists($attr)) then ( - replace value of node $attr with $value - ) else ( - insert node attribute TargetMachine {$value} into $node - ) - ), - ( (: Change SubSystem for Windows CE/Mobile) :) + ( (: Change SubSystem for Windows CE/Mobile :) let $value := $WINCE_SUB_SYSTEM let $attr := $node/@SubSystem return @@ -146,7 +127,7 @@ return (: Set ComplierTool for Windows CE/Mobile:) ( - if (fn:contains($config/@Name, $WINCE_PLATFORM_NAME)) then ( + if ($iswincenode) then ( for $node in $VCCLCompilerTool (: Update the attribute if exist. Otherwise, insert it:) return ( diff --git a/dist/adodotnet/adapt_SQLite.Interop.2010.xq.in b/dist/adodotnet/adapt_SQLite.Interop.2010.xq.in index 1151c6bd..05a00e6b 100644 --- a/dist/adodotnet/adapt_SQLite.Interop.2010.xq.in +++ b/dist/adodotnet/adapt_SQLite.Interop.2010.xq.in @@ -21,15 +21,22 @@ declare function local:getFileList($fileList) }; let $root := Project +let $platformName := $root/ItemGroup/ProjectConfiguration[1]/Platform/string() +let $isWinCE := (fn:contains($platformName, "CEPC") or fn:contains($platformName, "ARM")) let $fileList := $WINDOWS_FILES -let $cflags := $WINDOWS_FLAGS -let $includes := fn:replace($WINDOWS_INCLUDE, ',', ';') (: VS2010 use ';' as separator :) -let $inputLib := fn:concat($WINDOWS_INPUT_LIB, ';advapi32.lib') +let $cflags := if ($isWinCE) then (fn:replace($WINCE_FLAGS,'ARMV4','')) else ($WINDOWS_FLAGS) +(: VS2010 and VS2012 use ';' as separator :) +let $includes := if ($isWinCE) then (fn:replace($WINCE_INCLUDE, ',', ';')) else ( + fn:replace($WINDOWS_INCLUDE, ',', ';')) +let $inputLib := if ($isWinCE) then ('') else (fn:concat($WINDOWS_INPUT_LIB, ';advapi32.lib')) return ( - (: Add BDB Files :) + (: + Add BDB Files. We avoid doing this for WinCE projects, since xqilla can not + handle it correctly. + :) ( - let $newFileList := local:getFileList($fileList) + let $newFileList := if ($isWinCE) then () else (local:getFileList($fileList)) for $fileEntry in $root for $fileItem in $newFileList (:return $fileEntry:) @@ -70,7 +77,9 @@ return let $group := $node/parent::* return if (fn:contains($group/@Condition, "Win32") or - fn:contains($group/@Condition, "x64")) then ( + fn:contains($group/@Condition, "x64") or + fn:contains($group/@Condition, "CEPC") or + fn:contains($group/@Condition, "ARM")) then ( if (exists($dependcies)) then ( replace value of node $dependcies with fn:concat($inputLib, ';', $dependcies/string()) ) else ( diff --git a/dist/adodotnet/adapt_common.xq.in b/dist/adodotnet/adapt_common.xq.in index e7792a3a..1aec2490 100644 --- a/dist/adodotnet/adapt_common.xq.in +++ b/dist/adodotnet/adapt_common.xq.in @@ -3,7 +3,6 @@ :) declare boundary-space preserve; -declare variable $WINCE_PLATFORM_NAME := '@WINCE_PLATFORM_NAME@'; declare variable $WINCE_TARGET_MACHINE := '3'; (: const value in Visual Studio :) declare variable $WINCE_SUB_SYSTEM := '8'; (: const value in Visual Studio :) @@ -20,6 +19,7 @@ declare variable $COMMON_FLAGS := fn:concat( declare variable $WINDOWS_FLAGS := fn:concat(';', $COMMON_FLAGS, + 'INTEROP_LEGACY_CLOSE;', '_CRT_SECURE_NO_DEPRECATE;', '_CRT_NONSTDC_NO_DEPRECATE;', 'DB_CREATE_DLL;'); @@ -49,7 +49,7 @@ declare variable $WINCE_FLAGS := fn:concat( 'SQLITE_ENABLE_LOAD_EXTENSION;', 'SQLITE_SOUNDEX;', 'SQLITE_OMIT_WAL;', - 'INVALID_FILE_ATTRIBUTES=((DWORD)-1)'); + 'INVALID_FILE_ATTRIBUTES=((DWORD)-1);'); declare variable $DEBUG_ADDITIONAL_FLAGS := fn:concat( 'DIAGNOSTIC;', @@ -58,8 +58,8 @@ declare variable $DEBUG_ADDITIONAL_FLAGS := fn:concat( (: Win32/x64 variables :) declare variable $WINCE_PROJ_URL := '@BDB_PATH@/build_wince/VS8/db.vcproj'; -declare variable $WINDOWS_INCLUDE := '..\@BDB_NAME@\build_windows,..\@BDB_NAME@\src'; -declare variable $WINCE_INCLUDE := '..\@BDB_NAME@\build_wince,..\@BDB_NAME@\src'; +declare variable $WINDOWS_INCLUDE := ',..\@BDB_NAME@\build_windows,..\@BDB_NAME@\src'; +declare variable $WINCE_INCLUDE := ',..\@BDB_NAME@\build_wince,..\@BDB_NAME@\src'; declare variable $WIN_SRC := '..\\@BDB_NAME@\\src'; declare variable $WINDOWS_INPUT_LIB := 'ws2_32.lib'; diff --git a/dist/adodotnet/adodotnet.patch b/dist/adodotnet/adodotnet.patch index 235c1139..68661cbf 100644 --- a/dist/adodotnet/adodotnet.patch +++ b/dist/adodotnet/adodotnet.patch @@ -1,13 +1,45 @@ ---- orginal/src/win/interop.c 2010-04-17 13:14:08 +0800 -+++ SQLite.Interop/src/win/interop.c 2010-11-18 12:59:06 +0800 -@@ -1,6 +1,5 @@ - #include "../core/sqlite3.c"
- #include "../contrib/extension-functions.c"
+diff -r fff253f6cfea SQLite.Interop/src/contrib/extension-functions.c +--- SQLite.Interop/src/contrib/extension-functions.c Tue Apr 15 16:41:07 2014 +0800 ++++ SQLite.Interop/src/contrib/extension-functions.c Tue Apr 15 17:13:26 2014 +0800 +@@ -126,7 +126,13 @@ + + #if !defined(_WIN32_WCE) || defined(HAVE_ERRNO_H) + #include <errno.h> /* LMH 2007-03-25 */ ++#if defined(_WIN32_WCE) ++#include "dbinc/globals.h" ++#define strerror __db_Cstrerror ++extern char *strerror(int errnum); ++#endif + #else ++#undef errno + int errno; + #define strerror(x) "" + #endif +@@ -141,8 +147,8 @@ + + typedef signed char int8_t; + typedef unsigned char uint8_t; +-typedef signed int int16_t; +-typedef unsigned int uint16_t; ++typedef signed short int16_t; ++typedef unsigned short uint16_t; + typedef signed long int int32_t; + typedef unsigned long int uint32_t; + typedef signed long long int int64_t; +diff -r fff253f6cfea SQLite.Interop/src/win/interop.c +--- SQLite.Interop/src/win/interop.c Tue Apr 15 16:41:07 2014 +0800 ++++ SQLite.Interop/src/win/interop.c Tue Apr 15 17:13:26 2014 +0800 +@@ -31,9 +31,6 @@ + #endif
+
+ #ifdef SQLITE_OS_WIN
+-#if defined(INTEROP_CODEC)
-#include "crypt.c"
+-#endif
- extern int RegisterExtensionFunctions(sqlite3 *db);
+ #include "interop.h"
-@@ -393,7 +392,7 @@ +@@ -871,7 +868,7 @@ int n;
int ret = -1;
@@ -16,7 +48,7 @@ for (n = 0; n < p->nCursor && p->apCsr[n] != NULL; n++)
{
if (p->apCsr[n]->isTable == FALSE) continue;
-@@ -405,7 +404,7 @@ +@@ -883,7 +880,7 @@ }
}
sqlite3_mutex_leave(db->mutex);
@@ -25,30 +57,48 @@ return ret;
}
---- orginal/src/contrib/extension-functions.c 2009-04-28 08:01:14 +0800 -+++ SQLite.Interop/src/contrib/extension-functions.c 2010-11-18 12:26:06 +0800 -@@ -120,6 +120,7 @@ - #ifndef _WIN32_WCE - #include <errno.h> /* LMH 2007-03-25 */ - #else -+#undef errno - int errno; - #define strerror(x) "" - #endif -@@ -134,8 +135,8 @@ - - typedef signed char int8_t; - typedef unsigned char uint8_t; --typedef signed int int16_t; --typedef unsigned int uint16_t; -+typedef signed short int16_t; -+typedef unsigned short uint16_t; - typedef signed long int int32_t; - typedef unsigned long int uint32_t; - typedef signed long long int int64_t; ---- orginal/test/TestCases.cs 2011-04-27 17:27:26.000000000 +0800 -+++ test/TestCases.cs 2011-05-17 17:53:26.000000000 +0800 -@@ -1204,7 +1204,8 @@ +diff -r fff253f6cfea System.Data.SQLite/SQLiteConnection.cs +--- System.Data.SQLite/SQLiteConnection.cs Tue Apr 15 16:41:07 2014 +0800 ++++ System.Data.SQLite/SQLiteConnection.cs Tue Apr 15 17:13:26 2014 +0800 +@@ -2390,14 +2390,14 @@ + cmd.CommandText = String.Format(CultureInfo.InvariantCulture, "PRAGMA max_page_count={0}", intValue);
+ cmd.ExecuteNonQuery();
+ }
+-
+- strValue = FindKey(opts, "Legacy Format", DefaultLegacyFormat.ToString());
+- boolValue = SQLiteConvert.ToBoolean(strValue);
+- if (boolValue != DefaultLegacyFormat)
+- {
+- cmd.CommandText = String.Format(CultureInfo.InvariantCulture, "PRAGMA legacy_file_format={0}", boolValue ? "ON" : "OFF");
+- cmd.ExecuteNonQuery();
+- }
++ // DBSQL does not support "PRAGMA legacy_file_format", ignore this operation.
++ // strValue = FindKey(opts, "Legacy Format", DefaultLegacyFormat.ToString());
++ // boolValue = SQLiteConvert.ToBoolean(strValue);
++ // if (boolValue != DefaultLegacyFormat)
++ // {
++ // cmd.CommandText = String.Format(CultureInfo.InvariantCulture, "PRAGMA legacy_file_format={0}", boolValue ? "ON" : "OFF");
++ // cmd.ExecuteNonQuery();
++ // }
+
+ strValue = FindKey(opts, "Synchronous", DefaultSynchronous.ToString());
+ enumValue = TryParseEnum(typeof(SQLiteSynchronousEnum), strValue, true);
+@@ -2419,8 +2419,9 @@ + enumValue = TryParseEnum(typeof(SQLiteJournalModeEnum), strValue, true);
+ if (!(enumValue is SQLiteJournalModeEnum) || ((SQLiteJournalModeEnum)enumValue != DefaultJournalMode))
+ {
+- cmd.CommandText = String.Format(CultureInfo.InvariantCulture, "PRAGMA journal_mode={0}", strValue);
+- cmd.ExecuteNonQuery();
++ // DBSQL does not support "PRAGMA journal_mode", ignore this operation.
++ // cmd.CommandText = String.Format(CultureInfo.InvariantCulture, "PRAGMA journal_mode={0}", strValue);
++ // cmd.ExecuteNonQuery();
+ }
+
+ strValue = FindKey(opts, "Foreign Keys", DefaultForeignKeys.ToString());
+diff -r fff253f6cfea test/TestCases.cs +--- test/TestCases.cs Tue Apr 15 16:41:07 2014 +0800 ++++ test/TestCases.cs Tue Apr 15 17:13:26 2014 +0800 +@@ -1248,7 +1248,8 @@ CheckLocked();
}
@@ -58,8 +108,8 @@ internal void LockTest()
{
CheckSQLite();
-@@ -1289,7 +1290,8 @@ - internal int value;
+@@ -1334,7 +1335,8 @@ + internal System.Threading.ManualResetEvent ev;
}
- [Test(Sequence=11)]
@@ -68,45 +118,20 @@ internal void MultithreadingTest()
{
using (DbCommand cmd = _cnn.CreateCommand())
---- orginal/testce/TestCases.cs 2011-04-27 17:27:26.000000000 +0800 -+++ testce/TestCases.cs 2011-05-17 17:52:26.000000000 +0800 -@@ -103,8 +103,9 @@ - try { VerifyBinaryData(cnn); frm.WriteLine("SUCCESS - VerifyBinaryData"); } - catch (Exception) { frm.WriteLine("FAIL - VerifyBinaryData"); } - -- try { LockTest(cnn); frm.WriteLine("SUCCESS - LockTest"); } -- catch (Exception) { frm.WriteLine("FAIL - LockTest"); } -+ // Skip below test due to difference between SQLite and DBSQL." -+ // try { LockTest(cnn); frm.WriteLine("SUCCESS - LockTest"); } -+ // catch (Exception) { frm.WriteLine("FAIL - LockTest"); } - - try { ParameterizedInsertMissingParams(cnn); frm.WriteLine("FAIL - ParameterizedInsertMissingParams"); } - catch (Exception) { frm.WriteLine("SUCCESS - ParameterizedInsertMissingParams"); } ---- orginal/System.Data.SQLite/SQLiteConnection.cs 2011-04-27 17:27:26.000000000 +0800 -+++ System.Data.SQLite/SQLiteConnection.cs 2011-05-17 17:58:36.000000000 +0800 -@@ -880,9 +880,10 @@ - cmd.ExecuteNonQuery();
- }
-
-- defValue = FindKey(opts, "Legacy Format", Boolean.FalseString);
-- cmd.CommandText = String.Format(CultureInfo.InvariantCulture, "PRAGMA legacy_file_format={0}", SQLiteConvert.ToBoolean(defValue) == true ? "ON" : "OFF");
-- cmd.ExecuteNonQuery();
-+ // DBSQL does not support "PRAGMA legacy_file_format", ignore this operation.
-+ // defValue = FindKey(opts, "Legacy Format", Boolean.FalseString);
-+ // cmd.CommandText = String.Format(CultureInfo.InvariantCulture, "PRAGMA legacy_file_format={0}", SQLiteConvert.ToBoolean(defValue) == true ? "ON" : "OFF");
-+ // cmd.ExecuteNonQuery();
+diff -r fff253f6cfea testce/TestCases.cs +--- testce/TestCases.cs Tue Apr 15 16:41:07 2014 +0800 ++++ testce/TestCases.cs Tue Apr 15 17:13:26 2014 +0800 +@@ -252,9 +252,10 @@ + try { VerifyBinaryData(cnn); frm.WriteLine("SUCCESS - VerifyBinaryData"); passed++; }
+ catch (Exception) { frm.WriteLine("FAIL - VerifyBinaryData"); failed++; }
- defValue = FindKey(opts, "Synchronous", "Normal");
- if (String.Compare(defValue, "Full", StringComparison.OrdinalIgnoreCase) != 0)
-@@ -901,8 +902,9 @@ - defValue = FindKey(opts, "Journal Mode", "Delete");
- if (String.Compare(defValue, "Default", StringComparison.OrdinalIgnoreCase) != 0)
- {
-- cmd.CommandText = String.Format(CultureInfo.InvariantCulture, "PRAGMA journal_mode={0}", defValue);
-- cmd.ExecuteNonQuery();
-+ // DBSQL does not support "PRAGMA journal_mode", ignore this operation.
-+ // cmd.CommandText = String.Format(CultureInfo.InvariantCulture, "PRAGMA journal_mode={0}", defValue);
-+ // cmd.ExecuteNonQuery();
- }
+- total++;
+- try { LockTest(cnn, sql, isolatedSql); frm.WriteLine("SUCCESS - LockTest"); passed++; }
+- catch (Exception) { frm.WriteLine("FAIL - LockTest"); failed++; }
++ // Skip below test due to difference between SQLite and DBSQL.
++ // total++;
++ // try { LockTest(cnn, sql, isolatedSql); frm.WriteLine("SUCCESS - LockTest"); passed++; }
++ // catch (Exception) { frm.WriteLine("FAIL - LockTest"); failed++; }
- defValue = FindKey(opts, "Foreign Keys", Boolean.FalseString);
+ total++;
+ try { ParameterizedInsertMissingParams(cnn); frm.WriteLine("FAIL - ParameterizedInsertMissingParams"); failed++; }
diff --git a/dist/adodotnet/gen_wince_project.xq.in b/dist/adodotnet/gen_wince_project.xq.in index 0830bd8e..e1f0897f 100644 --- a/dist/adodotnet/gen_wince_project.xq.in +++ b/dist/adodotnet/gen_wince_project.xq.in @@ -1,86 +1,98 @@ (: -* This script will copy a WinCE configuration from default Win32 -* configuration for SQLite.Interop.2008.vcproj +* This script will generate the configuration for the following 3 platforms: +* Smartphone 2003 (ARMV4) +* Windows Mobile 6 Professional SDK (ARMV4I) +* Windows Mobile 6.5.3 Professional DTK (ARMV4I) :) -declare variable $PLATFORM_NAME := '@PLATFORM_NAME@'; -declare variable $PROJECT_GUID := '@PROJECT_GUID@'; -declare variable $PROJECT_FILE := '@PROJECT_FILE@'; -(: Copy WinCE Configurations from exisitng Win32 project :) -declare function local:renameConfig($config) +declare function local:getCopyNodes1($node) { - copy $newConfig := $config + copy $node1 := $node + modify replace value of node $node1/@Name with "Debug|Smartphone 2003 (ARMV4)" + return $node1 +}; + +declare function local:getCopyNodes2($node) +{ + copy $node2 := $node + modify replace value of node $node2/@Name with "Release|Smartphone 2003 (ARMV4)" + return $node2 +}; + +declare function local:getCopyNodes3($node) +{ + copy $node3 := $node + modify ( + replace value of node $node3/@Name with "Debug|Windows Mobile 6 Professional SDK (ARMV4I)" , + replace value of node $node3/Tool[@Name="VCLinkerTool"]/@AdditionalOptions with '/subsystem:windowsce,5.02' , + delete node $node3/Tool[@Name='VCLinkerTool']/@AdditionalDependencies + ) + return $node3 +}; + +declare function local:getCopyNodes4($node) +{ + copy $node4 := $node + modify ( + replace value of node $node4/@Name with "Release|Windows Mobile 6 Professional SDK (ARMV4I)" , + replace value of node $node4/Tool[@Name="VCLinkerTool"]/@AdditionalOptions with '/subsystem:windowsce,5.02' , + delete node $node4/Tool[@Name='VCLinkerTool']/@AdditionalDependencies + ) + return $node4 +}; + +declare function local:getCopyNodes5($node) +{ + copy $node5 := $node + modify ( + replace value of node $node5/@Name with "Debug|Windows Mobile 6.5.3 Professional DTK (ARMV4I)" , + replace value of node $node5/Tool[@Name="VCLinkerTool"]/@AdditionalOptions with '/subsystem:windowsce,5.02' , + delete node $node5/Tool[@Name='VCLinkerTool']/@AdditionalDependencies + ) + return $node5 +}; + +declare function local:getCopyNodes6($node) +{ + copy $node6 := $node modify ( - (: Change Win32 to PLATFORM_NAME :) - replace value of node $newConfig/@Name with - fn:replace($config/@Name/string(), 'Win32', $PLATFORM_NAME) + replace value of node $node6/@Name with "Release|Windows Mobile 6.5.3 Professional DTK (ARMV4I)" , + replace value of node $node6/Tool[@Name="VCLinkerTool"]/@AdditionalOptions with '/subsystem:windowsce,5.02' , + delete node $node6/Tool[@Name='VCLinkerTool']/@AdditionalDependencies ) - return $newConfig + return $node6 }; let $root := VisualStudioProject return ( - (: Change VisualStudioProject attributes :) - ( - (replace value of node $root/@ProjectGUID with '@PROJECT_GUID@'), - (replace value of node $root/@Keyword with 'WinCE_Proj'), - (replace value of node $root/@Name with '@PROJECT_FILE@') - ), - - (: Add WinCE Platform and remove others:) - ( - ( - for $platforms in $root/Platforms/* return delete node $platforms - ), - ( - for $platforms in $root/Platforms - return insert node <Platform Name="{$PLATFORM_NAME}" /> as last into $platforms - ) - ), - - (: Copy WinCE Project from exisitng Win32 project :) + (: Add the new platforms into "FileConfiguration" and "Platforms" :) ( - for $config in $root/Configurations/Configuration + for $platforms in ("Smartphone 2003 (ARMV4)", "Windows Mobile 6 Professional SDK (ARMV4I)", + "Windows Mobile 6.5.3 Professional DTK (ARMV4I)") return ( - ( - if (fn:contains($config/@Name, "Win32")) then ( - let $newConfig := local:renameConfig($config) - return replace node $config with $newConfig - ) else () - ), - - (: Remove Win32/x64 platform :) - ( - if (fn:contains($config/@Name, "Win32") or - fn:contains($config/@Name, "x64")) then ( - delete node $config - ) else () - ) + insert node <Platform Name="{$platforms}" /> as last into $root/Platforms, + for $n in $root/Files/Filter[@Name="Source Files"]/File/FileConfiguration[1] + for $conf in ("Debug", "Release") + return insert node <FileConfiguration ExcludedFromBuild="true" Name="{$conf}|{$platforms}"> + <Tool Name="VCCLCompilerTool" /></FileConfiguration> as last into $n/parent::* ) ), - (: Copy FileConfiguration for WinCE from exisitng Win32 FileConfiguration :) + (: + * Add the new platforms into "Configurations". + * We copy settings from "Debug|Pocket PC 2003(ARMV4)" and then + * do necessary changes. + :) ( - for $fconfig in $root/Files/Filter/File/FileConfiguration - return - ( - ( - if (fn:contains($fconfig/@Name, "Win32")) then ( - let $newConfig := local:renameConfig($fconfig) - return replace node $fconfig with $newConfig - ) else () - ), - - (: Remove Win32/x64 platform :) - ( - if (fn:contains($fconfig/@Name, "Win32") or - fn:contains($fconfig/@Name, "x64")) then ( - delete node $fconfig - ) else () - ) - ) + let $node1 := local:getCopyNodes1($root/Configurations/Configuration[1]) + let $node2 := local:getCopyNodes2($root/Configurations/Configuration[1]) + let $node3 := local:getCopyNodes3($root/Configurations/Configuration[1]) + let $node4 := local:getCopyNodes4($root/Configurations/Configuration[1]) + let $node5 := local:getCopyNodes5($root/Configurations/Configuration[1]) + let $node6 := local:getCopyNodes6($root/Configurations/Configuration[1]) + for $node in ($node1, $node2, $node3, $node4, $node5, $node6) + return insert node $node as last into $root/Configurations ) ) - diff --git a/dist/adodotnet/test.2008.csproj.user b/dist/adodotnet/test.2008.csproj.user deleted file mode 100644 index 300184a2..00000000 --- a/dist/adodotnet/test.2008.csproj.user +++ /dev/null @@ -1,8 +0,0 @@ -<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
- <StartWorkingDirectory>..\..\..\bin\Win32\ReleaseNativeOnly</StartWorkingDirectory>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
- <StartWorkingDirectory>..\..\..\bin\Win32\DebugNativeOnly</StartWorkingDirectory>
- </PropertyGroup>
-</Project>
diff --git a/dist/adodotnet/testce.2008.csproj b/dist/adodotnet/testce.2008.csproj deleted file mode 100644 index 141fe0c4..00000000 --- a/dist/adodotnet/testce.2008.csproj +++ /dev/null @@ -1,132 +0,0 @@ -<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5"> - <PropertyGroup> - <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> - <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> - <ProductVersion>9.0.30729</ProductVersion> - <SchemaVersion>2.0</SchemaVersion> - <ProjectGuid>{B86CE504-C4E4-496F-A0F0-E613BCFD3DF7}</ProjectGuid> - <OutputType>WinExe</OutputType> - <AppDesignerFolder>Properties</AppDesignerFolder> - <RootNamespace>test</RootNamespace> - <AssemblyName>testce.2008</AssemblyName> - <ProjectTypeGuids>{4D628B5B-2FBC-4AA6-8C16-197242AEB884};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> - <!-- DBSQL: Change the value for Windows Mobile platform - <PlatformFamilyName>PocketPC</PlatformFamilyName> - <PlatformID>3C41C503-53EF-4c2a-8DD4-A8217CAD115E</PlatformID> - <OSVersion>4.20</OSVersion> - --> - <PlatformFamilyName>WindowsCE</PlatformFamilyName> - <PlatformID>E2BECB1F-8C8C-41ba-B736-9BE7D946A398</PlatformID> - <OSVersion>5.00</OSVersion> - <DeployDirSuffix>testce</DeployDirSuffix> - <TargetFrameworkVersion>v2.0</TargetFrameworkVersion> - <FormFactorID> - </FormFactorID> - <StartupObject> - </StartupObject> - <DeployDirPrefix>%25CSIDL_PROGRAM_FILES%25</DeployDirPrefix> - <FileUpgradeFlags> - </FileUpgradeFlags> - <OldToolsVersion>2.0</OldToolsVersion> - <!-- DBSQL: Change the value for Windows Mobile platform - <NativePlatformName>Pocket PC 2003</NativePlatformName> - --> - <NativePlatformName>Windows CE</NativePlatformName> - <UpgradeBackupLocation> - </UpgradeBackupLocation> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> - <DebugSymbols>true</DebugSymbols> - <DebugType>full</DebugType> - <Optimize>false</Optimize> - <OutputPath>..\bin\CompactFramework\</OutputPath> - <!-- DBSQL: Change the value for Windows Mobile platform - <DefineConstants>TRACE;DEBUG;PocketPC</DefineConstants> - --> - <DefineConstants>TRACE;DEBUG;PocketPC;PLATFORM_COMPACTFRAMEWORK</DefineConstants> - <NoStdLib>true</NoStdLib> - <NoConfig>true</NoConfig> - <ErrorReport>prompt</ErrorReport> - <FileAlignment>512</FileAlignment> - <WarningLevel>4</WarningLevel> - <GenerateSerializationAssemblies>off</GenerateSerializationAssemblies> - <AllowUnsafeBlocks>true</AllowUnsafeBlocks> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> - <DebugType>none</DebugType> - <Optimize>true</Optimize> - <OutputPath>..\bin\CompactFramework\</OutputPath> - <!-- DBSQL: Change the value for Windows Mobile platform - <DefineConstants>PocketPC</DefineConstants> - --> - <DefineConstants>PocketPC;PLATFORM_COMPACTFRAMEWORK</DefineConstants> - <NoStdLib>true</NoStdLib> - <NoConfig>true</NoConfig> - <ErrorReport>prompt</ErrorReport> - <FileAlignment>512</FileAlignment> - <WarningLevel>4</WarningLevel> - <GenerateSerializationAssemblies>off</GenerateSerializationAssemblies> - </PropertyGroup> - <ItemGroup> - <ProjectReference Include="..\System.Data.SQLite\System.Data.SQLite.Compact.2008.csproj"> - <Project>{E2BECB1F-8C8C-41ba-B736-9BE7D946A398}</Project> - <Name>System.Data.SQLite.Compact.2008</Name> - <Private>False</Private> - </ProjectReference> - </ItemGroup> - <ItemGroup> - <Reference Include="mscorlib" /> - <Reference Include="System"> - <Private>False</Private> - </Reference> - <Reference Include="System.Data"> - <Private>False</Private> - </Reference> - <!-- DBSQL: don't think below element makes sense. Remove it. - <Reference Include="System.Data.SQLite, Version=1.0.66.0, Culture=neutral, PublicKeyToken=1fdb50b1b62b4c84, processorArchitecture=x86"> - <SpecificVersion>False</SpecificVersion> - <Private>True</Private> - </Reference> - --> - <Reference Include="System.Drawing"> - <Private>False</Private> - </Reference> - <Reference Include="System.Windows.Forms"> - <Private>False</Private> - </Reference> - <Reference Include="System.Xml"> - <Private>False</Private> - </Reference> - </ItemGroup> - <ItemGroup> - <Compile Include="AssemblyInfo.cs" /> - <Compile Include="Form1.cs"> - <SubType>Form</SubType> - </Compile> - <Compile Include="Form1.Designer.cs"> - <DependentUpon>Form1.cs</DependentUpon> - </Compile> - <Compile Include="Program.cs" /> - <Compile Include="TestCases.cs"> - </Compile> - </ItemGroup> - <ItemGroup> - <EmbeddedResource Include="Form1.resx"> - <DependentUpon>Form1.cs</DependentUpon> - <SubType>Designer</SubType> - </EmbeddedResource> - </ItemGroup> - <ItemGroup> - <Folder Include="Properties\" /> - </ItemGroup> - <Import Condition="'$(TargetFrameworkVersion)' == 'v1.0'" Project="$(MSBuildBinPath)\Microsoft.CompactFramework.CSharp.v1.targets" /> - <Import Condition="'$(TargetFrameworkVersion)' == 'v2.0'" Project="$(MSBuildBinPath)\Microsoft.CompactFramework.CSharp.targets" /> - <ProjectExtensions> - <VisualStudio> - <FlavorProperties GUID="{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}"> - <HostingProcess disable="1" /> - </FlavorProperties> - </VisualStudio> - </ProjectExtensions> - <Import Condition="'$(TargetFrameworkVersion)' == 'v3.5'" Project="$(MSBuildBinPath)\Microsoft.CompactFramework.CSharp.targets" /> -</Project> diff --git a/dist/android/Android.mk.template b/dist/android/Android.mk.template index 341258ae..2a463ece 100644 --- a/dist/android/Android.mk.template +++ b/dist/android/Android.mk.template @@ -26,6 +26,7 @@ LOCAL_C_INCLUDES += $(LOCAL_PATH)/$(BDB_TOP)/build_android/sql # Source files LOCAL_SRC_FILES := \ @SOURCE_FILES@ + $(BDB_TOP)/src/common/crypto_stub.c \ $(BDB_TOP)/lang/sql/generated/sqlite3.c ifneq ($(TARGET_ARCH),arm) @@ -94,3 +95,370 @@ LOCAL_MODULE := sqlite3 include $(BUILD_EXECUTABLE) endif # !SDK_ONLY +################################################################################ +##device commande line tool:db_archive +################################################################################ +ifneq ($(SDK_ONLY),true) # SDK doesn't need device version of db_archive +include $(CLEAR_VARS) + +LOCAL_ARM_MODE := arm +LOCAL_SRC_FILES := \ + $(BDB_TOP)/util/db_archive.c \ + $(BDB_TOP)/src/common/util_sig.c +LOCAL_SHARED_LIBRARIES := libsqlite +LOCAL_C_INCLUDES := $(BDB_PATH) $(LOCAL_PATH)/$(BDB_TOP)/build_android\ + $(LOCAL_PATH)/$(BDB_TOP)/lang/sql/generated $(LOCAL_PATH)/../android + +ifneq ($(TARGET_ARCH),arm) +LOCAL_LDLIBS += -lpthread -ldl +endif + +LOCAL_CFLAGS += -DHAVE_USLEEP=1 -DTHREADSAFE=1 -DNDEBUG=1 +LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES) +LOCAL_MODULE_TAGS := debug +LOCAL_MODULE := db_archive +include $(BUILD_EXECUTABLE) +endif # !SDK_ONLY + +################################################################################ +##device commande line tool:db_checkpoint +################################################################################ +ifneq ($(SDK_ONLY),true) # SDK doesn't need device version of db_checkpoint +include $(CLEAR_VARS) + +LOCAL_ARM_MODE := arm +LOCAL_SRC_FILES := \ + $(BDB_TOP)/util/db_checkpoint.c \ + $(BDB_TOP)/src/common/util_log.c \ + $(BDB_TOP)/src/common/util_sig.c +LOCAL_SHARED_LIBRARIES := libsqlite +LOCAL_C_INCLUDES := $(BDB_PATH) $(LOCAL_PATH)/$(BDB_TOP)/build_android\ + $(LOCAL_PATH)/$(BDB_TOP)/lang/sql/generated $(LOCAL_PATH)/../android + +ifneq ($(TARGET_ARCH),arm) +LOCAL_LDLIBS += -lpthread -ldl +endif + +LOCAL_CFLAGS += -DHAVE_USLEEP=1 -DTHREADSAFE=1 -DNDEBUG=1 +LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES) +LOCAL_MODULE_TAGS := debug +LOCAL_MODULE := db_checkpoint +include $(BUILD_EXECUTABLE) +endif # !SDK_ONLY + +################################################################################ +##device commande line tool:db_deadlock +################################################################################ +ifneq ($(SDK_ONLY),true) # SDK doesn't need device version of db_deadlock +include $(CLEAR_VARS) + +LOCAL_ARM_MODE := arm +LOCAL_SRC_FILES := \ + $(BDB_TOP)/util/db_deadlock.c \ + $(BDB_TOP)/src/common/util_log.c \ + $(BDB_TOP)/src/common/util_sig.c +LOCAL_SHARED_LIBRARIES := libsqlite +LOCAL_C_INCLUDES := $(BDB_PATH) $(LOCAL_PATH)/$(BDB_TOP)/build_android\ + $(LOCAL_PATH)/$(BDB_TOP)/lang/sql/generated $(LOCAL_PATH)/../android + +ifneq ($(TARGET_ARCH),arm) +LOCAL_LDLIBS += -lpthread -ldl +endif + +LOCAL_CFLAGS += -DHAVE_USLEEP=1 -DTHREADSAFE=1 -DNDEBUG=1 +LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES) +LOCAL_MODULE_TAGS := debug +LOCAL_MODULE := db_deadlock +include $(BUILD_EXECUTABLE) +endif # !SDK_ONLY + +################################################################################ +##device commande line tool:db_dump +################################################################################ +ifneq ($(SDK_ONLY),true) # SDK doesn't need device version of db_dump +include $(CLEAR_VARS) + +LOCAL_ARM_MODE := arm +LOCAL_SRC_FILES := \ + $(BDB_TOP)/util/db_dump.c \ + $(BDB_TOP)/src/common/util_cache.c \ + $(BDB_TOP)/src/common/util_sig.c +LOCAL_SHARED_LIBRARIES := libsqlite +LOCAL_C_INCLUDES := $(BDB_PATH) $(LOCAL_PATH)/$(BDB_TOP)/build_android\ + $(LOCAL_PATH)/$(BDB_TOP)/lang/sql/generated $(LOCAL_PATH)/../android + +ifneq ($(TARGET_ARCH),arm) +LOCAL_LDLIBS += -lpthread -ldl +endif + +LOCAL_CFLAGS += -DHAVE_USLEEP=1 -DTHREADSAFE=1 -DNDEBUG=1 +LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES) +LOCAL_MODULE_TAGS := debug +LOCAL_MODULE := db_dump +include $(BUILD_EXECUTABLE) +endif # !SDK_ONLY + +################################################################################ +##device commande line tool:db_hotbackup +################################################################################ +ifneq ($(SDK_ONLY),true) # SDK doesn't need device version of db_hotbackup +include $(CLEAR_VARS) + +LOCAL_ARM_MODE := arm +LOCAL_SRC_FILES := \ + $(BDB_TOP)/util/db_hotbackup.c \ + $(BDB_TOP)/src/common/util_sig.c +LOCAL_SHARED_LIBRARIES := libsqlite +LOCAL_C_INCLUDES := $(BDB_PATH) $(LOCAL_PATH)/$(BDB_TOP)/build_android\ + $(LOCAL_PATH)/$(BDB_TOP)/lang/sql/generated $(LOCAL_PATH)/../android + +ifneq ($(TARGET_ARCH),arm) +LOCAL_LDLIBS += -lpthread -ldl +endif + +LOCAL_CFLAGS += -DHAVE_USLEEP=1 -DTHREADSAFE=1 -DNDEBUG=1 +LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES) +LOCAL_MODULE_TAGS := debug +LOCAL_MODULE := db_hotbackup +include $(BUILD_EXECUTABLE) +endif # !SDK_ONLY + +################################################################################ +##device commande line tool:db_load +################################################################################ +ifneq ($(SDK_ONLY),true) # SDK doesn't need device version of db_load +include $(CLEAR_VARS) + +LOCAL_ARM_MODE := arm +LOCAL_SRC_FILES := \ + $(BDB_TOP)/util/db_load.c \ + $(BDB_TOP)/src/common/util_cache.c \ + $(BDB_TOP)/src/common/util_sig.c +LOCAL_SHARED_LIBRARIES := libsqlite +LOCAL_C_INCLUDES := $(BDB_PATH) $(LOCAL_PATH)/$(BDB_TOP)/build_android\ + $(LOCAL_PATH)/$(BDB_TOP)/lang/sql/generated $(LOCAL_PATH)/../android + +ifneq ($(TARGET_ARCH),arm) +LOCAL_LDLIBS += -lpthread -ldl +endif + +LOCAL_CFLAGS += -DHAVE_USLEEP=1 -DTHREADSAFE=1 -DNDEBUG=1 +LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES) +LOCAL_MODULE_TAGS := debug +LOCAL_MODULE := db_load +include $(BUILD_EXECUTABLE) +endif # !SDK_ONLY + +################################################################################ +##device commande line tool:db_printlog +################################################################################ +ifneq ($(SDK_ONLY),true) # SDK doesn't need device version of db_printlog +include $(CLEAR_VARS) + +LOCAL_ARM_MODE := arm +LOCAL_SRC_FILES := \ + $(BDB_TOP)/util/db_printlog.c \ + $(BDB_TOP)/src/common/util_sig.c \ + $(BDB_TOP)/src/btree/btree_autop.c \ + $(BDB_TOP)/src/db/crdel_autop.c \ + $(BDB_TOP)/src/db/db_autop.c \ + $(BDB_TOP)/src/dbreg/dbreg_autop.c \ + $(BDB_TOP)/src/fileops/fileops_autop.c \ + $(BDB_TOP)/src/hash/hash_autop.c \ + $(BDB_TOP)/src/heap/heap_autop.c \ + $(BDB_TOP)/src/qam/qam_autop.c \ + $(BDB_TOP)/src/repmgr/repmgr_autop.c \ + $(BDB_TOP)/src/txn/txn_autop.c + +LOCAL_SHARED_LIBRARIES := libsqlite +LOCAL_C_INCLUDES := $(BDB_PATH) $(LOCAL_PATH)/$(BDB_TOP)/build_android\ + $(LOCAL_PATH)/$(BDB_TOP)/lang/sql/generated $(LOCAL_PATH)/../android + +ifneq ($(TARGET_ARCH),arm) +LOCAL_LDLIBS += -lpthread -ldl +endif + +LOCAL_CFLAGS += -DHAVE_USLEEP=1 -DTHREADSAFE=1 -DNDEBUG=1 +LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES) +LOCAL_MODULE_TAGS := debug +LOCAL_MODULE := db_printlog +include $(BUILD_EXECUTABLE) +endif # !SDK_ONLY + +################################################################################ +##device commande line tool:db_recover +################################################################################ +ifneq ($(SDK_ONLY),true) # SDK doesn't need device version of db_recover +include $(CLEAR_VARS) + +LOCAL_ARM_MODE := arm +LOCAL_SRC_FILES := \ + $(BDB_TOP)/util/db_recover.c \ + $(BDB_TOP)/src/common/util_sig.c +LOCAL_SHARED_LIBRARIES := libsqlite +LOCAL_C_INCLUDES := $(BDB_PATH) $(LOCAL_PATH)/$(BDB_TOP)/build_android\ + $(LOCAL_PATH)/$(BDB_TOP)/lang/sql/generated $(LOCAL_PATH)/../android + +ifneq ($(TARGET_ARCH),arm) +LOCAL_LDLIBS += -lpthread -ldl +endif + +LOCAL_CFLAGS += -DHAVE_USLEEP=1 -DTHREADSAFE=1 -DNDEBUG=1 +LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES) +LOCAL_MODULE_TAGS := debug +LOCAL_MODULE := db_recover +include $(BUILD_EXECUTABLE) +endif # !SDK_ONLY + +################################################################################ +##device commande line tool:db_replicate +################################################################################ +ifneq ($(SDK_ONLY),true) # SDK doesn't need device version of db_replicate +include $(CLEAR_VARS) + +LOCAL_ARM_MODE := arm +LOCAL_SRC_FILES := \ + $(BDB_TOP)/util/db_replicate.c \ + $(BDB_TOP)/src/common/util_sig.c +LOCAL_SHARED_LIBRARIES := libsqlite +LOCAL_C_INCLUDES := $(BDB_PATH) $(LOCAL_PATH)/$(BDB_TOP)/build_android\ + $(LOCAL_PATH)/$(BDB_TOP)/lang/sql/generated $(LOCAL_PATH)/../android + +ifneq ($(TARGET_ARCH),arm) +LOCAL_LDLIBS += -lpthread -ldl +endif + +LOCAL_CFLAGS += -DHAVE_USLEEP=1 -DTHREADSAFE=1 -DNDEBUG=1 +LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES) +LOCAL_MODULE_TAGS := debug +LOCAL_MODULE := db_replicate +include $(BUILD_EXECUTABLE) +endif # !SDK_ONLY + +################################################################################ +##device commande line tool:db_stat +################################################################################ +ifneq ($(SDK_ONLY),true) # SDK doesn't need device version of db_stat +include $(CLEAR_VARS) + +LOCAL_ARM_MODE := arm +LOCAL_SRC_FILES := \ + $(BDB_TOP)/util/db_stat.c \ + $(BDB_TOP)/src/common/util_cache.c \ + $(BDB_TOP)/src/common/util_sig.c +LOCAL_SHARED_LIBRARIES := libsqlite +LOCAL_C_INCLUDES := $(BDB_PATH) $(LOCAL_PATH)/$(BDB_TOP)/build_android\ + $(LOCAL_PATH)/$(BDB_TOP)/lang/sql/generated $(LOCAL_PATH)/../android + +ifneq ($(TARGET_ARCH),arm) +LOCAL_LDLIBS += -lpthread -ldl +endif + +LOCAL_CFLAGS += -DHAVE_USLEEP=1 -DTHREADSAFE=1 -DNDEBUG=1 +LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES) +LOCAL_MODULE_TAGS := debug +LOCAL_MODULE := db_stat +include $(BUILD_EXECUTABLE) +endif # !SDK_ONLY + +################################################################################ +##device commande line tool:db_tuner +################################################################################ +ifneq ($(SDK_ONLY),true) # SDK doesn't need device version of db_tuner +include $(CLEAR_VARS) + +LOCAL_ARM_MODE := arm +LOCAL_SRC_FILES := \ + $(BDB_TOP)/util/db_tuner.c \ + $(BDB_TOP)/src/common/util_sig.c +LOCAL_SHARED_LIBRARIES := libsqlite +LOCAL_C_INCLUDES := $(BDB_PATH) $(LOCAL_PATH)/$(BDB_TOP)/build_android\ + $(LOCAL_PATH)/$(BDB_TOP)/lang/sql/generated $(LOCAL_PATH)/../android + +ifneq ($(TARGET_ARCH),arm) +LOCAL_LDLIBS += -lpthread -ldl +endif + +LOCAL_CFLAGS += -DHAVE_USLEEP=1 -DTHREADSAFE=1 -DNDEBUG=1 +LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES) +LOCAL_MODULE_TAGS := debug +LOCAL_MODULE := db_tuner +include $(BUILD_EXECUTABLE) +endif # !SDK_ONLY + +################################################################################ +##device commande line tool:db_upgrade +################################################################################ +ifneq ($(SDK_ONLY),true) # SDK doesn't need device version of db_upgrade +include $(CLEAR_VARS) + +LOCAL_ARM_MODE := arm +LOCAL_SRC_FILES := \ + $(BDB_TOP)/util/db_upgrade.c \ + $(BDB_TOP)/src/common/util_sig.c +LOCAL_SHARED_LIBRARIES := libsqlite +LOCAL_C_INCLUDES := $(BDB_PATH) $(LOCAL_PATH)/$(BDB_TOP)/build_android\ + $(LOCAL_PATH)/$(BDB_TOP)/lang/sql/generated $(LOCAL_PATH)/../android + +ifneq ($(TARGET_ARCH),arm) +LOCAL_LDLIBS += -lpthread -ldl +endif + +LOCAL_CFLAGS += -DHAVE_USLEEP=1 -DTHREADSAFE=1 -DNDEBUG=1 +LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES) +LOCAL_MODULE_TAGS := debug +LOCAL_MODULE := db_upgrade +include $(BUILD_EXECUTABLE) +endif # !SDK_ONLY + +################################################################################ +##device commande line tool:db_verify +################################################################################ +ifneq ($(SDK_ONLY),true) # SDK doesn't need device version of db_verify +include $(CLEAR_VARS) + +LOCAL_ARM_MODE := arm +LOCAL_SRC_FILES := \ + $(BDB_TOP)/util/db_verify.c \ + $(BDB_TOP)/src/common/util_cache.c \ + $(BDB_TOP)/src/common/util_sig.c +LOCAL_SHARED_LIBRARIES := libsqlite +LOCAL_C_INCLUDES := $(BDB_PATH) $(LOCAL_PATH)/$(BDB_TOP)/build_android\ + $(LOCAL_PATH)/$(BDB_TOP)/lang/sql/generated $(LOCAL_PATH)/../android + +ifneq ($(TARGET_ARCH),arm) +LOCAL_LDLIBS += -lpthread -ldl +endif + +LOCAL_CFLAGS += -DHAVE_USLEEP=1 -DTHREADSAFE=1 -DNDEBUG=1 +LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES) +LOCAL_MODULE_TAGS := debug +LOCAL_MODULE := db_verify +include $(BUILD_EXECUTABLE) +endif # !SDK_ONLY + +################################################################################ +##device commande line tool:db_log_verify +################################################################################ +ifneq ($(SDK_ONLY),true) # SDK doesn't need device version of db_log_verify +include $(CLEAR_VARS) + +LOCAL_ARM_MODE := arm +LOCAL_SRC_FILES := \ + $(BDB_TOP)/util/db_log_verify.c \ + $(BDB_TOP)/src/common/util_cache.c \ + $(BDB_TOP)/src/common/util_sig.c +LOCAL_SHARED_LIBRARIES := libsqlite +LOCAL_C_INCLUDES := $(BDB_PATH) $(LOCAL_PATH)/$(BDB_TOP)/build_android\ + $(LOCAL_PATH)/$(BDB_TOP)/lang/sql/generated $(LOCAL_PATH)/../android + +ifneq ($(TARGET_ARCH),arm) +LOCAL_LDLIBS += -lpthread -ldl +endif + +LOCAL_CFLAGS += -DHAVE_USLEEP=1 -DTHREADSAFE=1 -DNDEBUG=1 +LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES) +LOCAL_MODULE_TAGS := debug +LOCAL_MODULE := db_log_verify +include $(BUILD_EXECUTABLE) +endif # !SDK_ONLY diff --git a/dist/android/android_config.in b/dist/android/android_config.in index 689d81a1..fa6546cb 100644 --- a/dist/android/android_config.in +++ b/dist/android/android_config.in @@ -80,6 +80,10 @@ /* Define to 1 if building the DBM API. */ /* #undef HAVE_DBM */ +/* Define to 1 if you want a version that records extra information about + errors. */ +/* #undef HAVE_ERROR_HISTORY */ + /* Define to 1 if you have the `directio' function. */ /* #undef HAVE_DIRECTIO */ @@ -99,6 +103,9 @@ /* Define to 1 if platform has EXIT_SUCCESS/EXIT_FAILURE #defines. */ #define HAVE_EXIT_SUCCESS 1 +/* Define to 1 for failchk to inform all waiting threads about crashes. */ +/* #undef HAVE_FAILCHK_BROADCAST */ + /* Define to 1 if you have the `fchmod' function. */ #define HAVE_FCHMOD 1 @@ -168,6 +175,9 @@ /* Define to 1 if you have the `hstrerror' function. */ #define HAVE_HSTRERROR 1 +/* Define to 1 if you have the `initstate_r' function. */ +/* #undef HAVE_INITSTATE_R */ + /* Define to 1 if you have the <inttypes.h> header file. */ #define HAVE_INTTYPES_H 1 @@ -189,6 +199,9 @@ /* Define to 1 if you have the `localtime' function. */ #define HAVE_LOCALTIME 1 +/* Define to 1 if you have the `localtime_r' function. */ +#define HAVE_LOCALTIME_R 1 + /* Define to 1 if you want to enable log checksums. */ /* #undef HAVE_LOG_CHECKSUM */ @@ -362,6 +375,15 @@ pthread_cond_t. */ /* #undef HAVE_PTHREAD_COND_REINIT_OKAY */ +/* Define to 1 if you have the `pthread_getspecific' function. */ +/* #undef HAVE_PTHREAD_GETSPECIFIC */ + +/* Define to 1 if you have the `pthread_key_create' function. */ +/* #undef HAVE_PTHREAD_KEY_CREATE */ + +/* Define to 1 if you have the `pthread_once' function. */ +/* #undef HAVE_PTHREAD_ONCE */ + /* Define to 1 if it is OK to initialize an already initialized pthread_rwlock_t. */ /* #undef HAVE_PTHREAD_RWLOCK_REINIT_OKAY */ @@ -369,6 +391,9 @@ /* Define to 1 if you have the `pthread_self' function. */ #define HAVE_PTHREAD_SELF 1 +/* Define to 1 if you have the `pthread_setspecific' function. */ +/* #undef HAVE_PTHREAD_SETSPECIFIC */ + /* Define to 1 if you have the `pthread_yield' function. */ /* #undef HAVE_PTHREAD_YIELD */ @@ -393,6 +418,9 @@ /* Define to 1 if you have the `random' function. */ /* #undef HAVE_RANDOM */ +/* Define to 1 if you have the `random_r' function. */ +/* #undef HAVE_RANDOM_R / + /* Define to 1 if building replication support. */ /* #undef HAVE_REPLICATION */ @@ -429,6 +457,9 @@ /* Define to 1 if you have the `snprintf' function. */ #define HAVE_SNPRINTF 1 +/* Define to 1 if you have the `srandom_r' function. */ +/* #undef HAVE_SRANDOM_R */ + /* Define to 1 if you have the `stat' function. */ #define HAVE_STAT 1 @@ -585,6 +616,9 @@ /* The size of `long long', as computed by sizeof. */ #define SIZEOF_LONG_LONG 8 +/* The size of `off_t', as computed by sizeof. */ +#define SIZEOF_OFF_T + /* The size of `short', as computed by sizeof. */ #define SIZEOF_SHORT 2 diff --git a/dist/android/jdbc/Android.mk.template b/dist/android/jdbc/Android.mk.template index d05af245..b1118095 100644 --- a/dist/android/jdbc/Android.mk.template +++ b/dist/android/jdbc/Android.mk.template @@ -9,6 +9,7 @@ # Android directly. ################################################################### LOCAL_PATH := $(call my-dir) +BDB_ENABLE_ENCRYPTION := false ################################################################### # Common variables @@ -42,6 +43,10 @@ COMMON_CFLAGS := -Wall -DHAVE_USLEEP=1 \ -D_HAVE_SQLITE_CONFIG_H -DSQLITE_THREAD_OVERRIDE_LOCK=-1 \ -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_BACKWARDS -Dfdatasync=fsync +ifeq ($(BDB_ENABLE_ENCRYPTION),true) +COMMON_CFLAGS += -DSQLITE_HAS_CODEC -DHAVE_CRYPTO -DHAVE_SQLITE3_KEY +endif + # Required for JDBC building # Most of these are from configured <db>/lang/sql/jdbc/Makefile.in COMMON_CFLAGS += \ @@ -65,7 +70,6 @@ COMMON_CFLAGS += \ -DHAVE_SQLITE3_BIND_PARAMETER_INDEX=1 \ -DHAVE_SQLITE3_RESULT_ZEROBLOB=1 \ -DHAVE_SQLITE3_INCRBLOBIO=1 \ - -DHAVE_SQLITE3_KEY=0 \ -DHAVE_SQLITE3_SHARED_CACHE=1 \ -DHAVE_SQLITE3_OPEN_V2=1 \ -DHAVE_SQLITE3_LOAD_EXTENSION=0 \ @@ -98,6 +102,17 @@ LOCAL_SRC_FILES := \ @SOURCE_FILES@ $(BDB_TOP)/lang/sql/generated/sqlite3.c +ifeq ($(BDB_ENABLE_ENCRYPTION),true) +LOCAL_SRC_FILES += \ + $(BDB_TOP)/src/crypto/crypto.c \ + $(BDB_TOP)/src/crypto/aes_method.c \ + $(BDB_TOP)/src/crypto/mersenne/mt19937db.c \ + $(BDB_TOP)/src/crypto/rijndael/rijndael-api-fst.c \ + $(BDB_TOP)/src/crypto/rijndael/rijndael-alg-fst.c +else +LOCAL_SRC_FILES += $(BDB_TOP)/src/common/crypto_stub.c +endif + ifneq ($(TARGET_ARCH),arm) LOCAL_LDLIBS += -lpthread -ldl endif @@ -159,3 +174,397 @@ LOCAL_MODULE_TAGS := debug include $(BUILD_EXECUTABLE) endif # !SDK_ONLY + +################################################################################ +##device commande line tool:db_archive +################################################################################ +ifneq ($(SDK_ONLY),true) # SDK doesn't need device version of db_archive +include $(CLEAR_VARS) +LOCAL_MODULE := db_archive + +LOCAL_ARM_MODE := arm +LOCAL_STATIC_LIBRARIES := libdb_sql_static # Based on above static library +LOCAL_SRC_FILES := \ + $(BDB_TOP)/util/db_archive.c \ + $(BDB_TOP)/src/common/util_sig.c + +# Import common flags +LOCAL_C_INCLUDES += $(COMMON_C_INCLUDES) +LOCAL_CFLAGS += $(COMMON_CFLAGS) + +ifneq ($(TARGET_ARCH),arm) +LOCAL_LDLIBS += -lpthread -ldl +endif + +LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES) +LOCAL_MODULE_TAGS := debug +include $(BUILD_EXECUTABLE) +endif # !SDK_ONLY + + +################################################################################ +##device commande line tool:db_checkpoint +################################################################################ +ifneq ($(SDK_ONLY),true) # SDK doesn't need device version of db_checkpoint +include $(CLEAR_VARS) +LOCAL_MODULE := db_checkpoint + +LOCAL_ARM_MODE := arm +LOCAL_STATIC_LIBRARIES := libdb_sql_static # Based on above static library +LOCAL_SRC_FILES := \ + $(BDB_TOP)/util/db_checkpoint.c \ + $(BDB_TOP)/src/common/util_log.c \ + $(BDB_TOP)/src/common/util_sig.c + +# Import common flags +LOCAL_C_INCLUDES += $(COMMON_C_INCLUDES) +LOCAL_CFLAGS += $(COMMON_CFLAGS) + +ifneq ($(TARGET_ARCH),arm) +LOCAL_LDLIBS += -lpthread -ldl +endif + +LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES) +LOCAL_MODULE_TAGS := debug +include $(BUILD_EXECUTABLE) +endif # !SDK_ONLY + + +################################################################################ +##device commande line tool:db_deadlock +################################################################################ +ifneq ($(SDK_ONLY),true) # SDK doesn't need device version of db_deadlock +include $(CLEAR_VARS) +LOCAL_MODULE := db_deadlock + +LOCAL_ARM_MODE := arm +LOCAL_STATIC_LIBRARIES := libdb_sql_static # Based on above static library +LOCAL_SRC_FILES := \ + $(BDB_TOP)/util/db_deadlock.c \ + $(BDB_TOP)/src/common/util_log.c \ + $(BDB_TOP)/src/common/util_sig.c + +# Import common flags +LOCAL_C_INCLUDES += $(COMMON_C_INCLUDES) +LOCAL_CFLAGS += $(COMMON_CFLAGS) + +ifneq ($(TARGET_ARCH),arm) +LOCAL_LDLIBS += -lpthread -ldl +endif + +LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES) +LOCAL_MODULE_TAGS := debug +include $(BUILD_EXECUTABLE) +endif # !SDK_ONLY + + +################################################################################ +##device commande line tool:db_dump +################################################################################ +ifneq ($(SDK_ONLY),true) # SDK doesn't need device version of db_dump +include $(CLEAR_VARS) +LOCAL_MODULE := db_dump + +LOCAL_ARM_MODE := arm +LOCAL_STATIC_LIBRARIES := libdb_sql_static # Based on above static library +LOCAL_SRC_FILES := \ + $(BDB_TOP)/util/db_dump.c \ + $(BDB_TOP)/src/common/util_cache.c \ + $(BDB_TOP)/src/common/util_sig.c + +# Import common flags +LOCAL_C_INCLUDES += $(COMMON_C_INCLUDES) +LOCAL_CFLAGS += $(COMMON_CFLAGS) + +ifneq ($(TARGET_ARCH),arm) +LOCAL_LDLIBS += -lpthread -ldl +endif + +LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES) +LOCAL_MODULE_TAGS := debug +include $(BUILD_EXECUTABLE) +endif # !SDK_ONLY + + +################################################################################ +##device commande line tool:db_hotbackup +################################################################################ +ifneq ($(SDK_ONLY),true) # SDK doesn't need device version of db_hotbackup +include $(CLEAR_VARS) +LOCAL_MODULE := db_hotbackup + +LOCAL_ARM_MODE := arm +LOCAL_STATIC_LIBRARIES := libdb_sql_static # Based on above static library +LOCAL_SRC_FILES := \ + $(BDB_TOP)/util/db_hotbackup.c \ + $(BDB_TOP)/src/common/util_sig.c + +# Import common flags +LOCAL_C_INCLUDES += $(COMMON_C_INCLUDES) +LOCAL_CFLAGS += $(COMMON_CFLAGS) + +ifneq ($(TARGET_ARCH),arm) +LOCAL_LDLIBS += -lpthread -ldl +endif + +LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES) +LOCAL_MODULE_TAGS := debug +include $(BUILD_EXECUTABLE) +endif # !SDK_ONLY + + +################################################################################ +##device commande line tool:db_load +################################################################################ +ifneq ($(SDK_ONLY),true) # SDK doesn't need device version of db_load +include $(CLEAR_VARS) +LOCAL_MODULE := db_load + +LOCAL_ARM_MODE := arm +LOCAL_STATIC_LIBRARIES := libdb_sql_static # Based on above static library +LOCAL_SRC_FILES := \ + $(BDB_TOP)/util/db_load.c \ + $(BDB_TOP)/src/common/util_cache.c \ + $(BDB_TOP)/src/common/util_sig.c + +# Import common flags +LOCAL_C_INCLUDES += $(COMMON_C_INCLUDES) +LOCAL_CFLAGS += $(COMMON_CFLAGS) + +ifneq ($(TARGET_ARCH),arm) +LOCAL_LDLIBS += -lpthread -ldl +endif + +LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES) +LOCAL_MODULE_TAGS := debug +include $(BUILD_EXECUTABLE) +endif # !SDK_ONLY + + +################################################################################ +##device commande line tool:db_printlog +################################################################################ +ifneq ($(SDK_ONLY),true) # SDK doesn't need device version of db_printlog +include $(CLEAR_VARS) +LOCAL_MODULE := db_printlog + +LOCAL_ARM_MODE := arm +LOCAL_STATIC_LIBRARIES := libdb_sql_static # Based on above static library +LOCAL_SRC_FILES := \ + $(BDB_TOP)/util/db_printlog.c \ + $(BDB_TOP)/src/common/util_sig.c \ + $(BDB_TOP)/src/btree/btree_autop.c \ + $(BDB_TOP)/src/db/crdel_autop.c \ + $(BDB_TOP)/src/db/db_autop.c \ + $(BDB_TOP)/src/dbreg/dbreg_autop.c \ + $(BDB_TOP)/src/fileops/fileops_autop.c \ + $(BDB_TOP)/src/hash/hash_autop.c \ + $(BDB_TOP)/src/heap/heap_autop.c \ + $(BDB_TOP)/src/qam/qam_autop.c \ + $(BDB_TOP)/src/repmgr/repmgr_autop.c \ + $(BDB_TOP)/src/txn/txn_autop.c + +# Import common flags +LOCAL_C_INCLUDES += $(COMMON_C_INCLUDES) +LOCAL_CFLAGS += $(COMMON_CFLAGS) + +ifneq ($(TARGET_ARCH),arm) +LOCAL_LDLIBS += -lpthread -ldl +endif + +LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES) +LOCAL_MODULE_TAGS := debug +include $(BUILD_EXECUTABLE) +endif # !SDK_ONLY + + +################################################################################ +##device commande line tool:db_recover +################################################################################ +ifneq ($(SDK_ONLY),true) # SDK doesn't need device version of db_recover +include $(CLEAR_VARS) +LOCAL_MODULE := db_recover + +LOCAL_ARM_MODE := arm +LOCAL_STATIC_LIBRARIES := libdb_sql_static # Based on above static library +LOCAL_SRC_FILES := \ + $(BDB_TOP)/util/db_recover.c \ + $(BDB_TOP)/src/common/util_sig.c + +# Import common flags +LOCAL_C_INCLUDES += $(COMMON_C_INCLUDES) +LOCAL_CFLAGS += $(COMMON_CFLAGS) + +ifneq ($(TARGET_ARCH),arm) +LOCAL_LDLIBS += -lpthread -ldl +endif + +LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES) +LOCAL_MODULE_TAGS := debug +include $(BUILD_EXECUTABLE) +endif # !SDK_ONLY + + +################################################################################ +##device commande line tool:db_replicate +################################################################################ +ifneq ($(SDK_ONLY),true) # SDK doesn't need device version of db_replicate +include $(CLEAR_VARS) +LOCAL_MODULE := db_replicate + +LOCAL_ARM_MODE := arm +LOCAL_STATIC_LIBRARIES := libdb_sql_static # Based on above static library +LOCAL_SRC_FILES := \ + $(BDB_TOP)/util/db_replicate.c \ + $(BDB_TOP)/src/common/util_sig.c + +# Import common flags +LOCAL_C_INCLUDES += $(COMMON_C_INCLUDES) +LOCAL_CFLAGS += $(COMMON_CFLAGS) + +ifneq ($(TARGET_ARCH),arm) +LOCAL_LDLIBS += -lpthread -ldl +endif + +LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES) +LOCAL_MODULE_TAGS := debug +include $(BUILD_EXECUTABLE) +endif # !SDK_ONLY + + +################################################################################ +##device commande line tool:db_stat +################################################################################ +ifneq ($(SDK_ONLY),true) # SDK doesn't need device version of db_stat +include $(CLEAR_VARS) +LOCAL_MODULE := db_stat + +LOCAL_ARM_MODE := arm +LOCAL_STATIC_LIBRARIES := libdb_sql_static # Based on above static library +LOCAL_SRC_FILES := \ + $(BDB_TOP)/util/db_stat.c \ + $(BDB_TOP)/src/common/util_cache.c \ + $(BDB_TOP)/src/common/util_sig.c + +# Import common flags +LOCAL_C_INCLUDES += $(COMMON_C_INCLUDES) +LOCAL_CFLAGS += $(COMMON_CFLAGS) + +ifneq ($(TARGET_ARCH),arm) +LOCAL_LDLIBS += -lpthread -ldl +endif + +LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES) +LOCAL_MODULE_TAGS := debug +include $(BUILD_EXECUTABLE) +endif # !SDK_ONLY + + +################################################################################ +##device commande line tool:db_tuner +################################################################################ +ifneq ($(SDK_ONLY),true) # SDK doesn't need device version of db_tuner +include $(CLEAR_VARS) +LOCAL_MODULE := db_tuner + +LOCAL_ARM_MODE := arm +LOCAL_STATIC_LIBRARIES := libdb_sql_static # Based on above static library +LOCAL_SRC_FILES := \ + $(BDB_TOP)/util/db_tuner.c \ + $(BDB_TOP)/src/common/util_sig.c + +# Import common flags +LOCAL_C_INCLUDES += $(COMMON_C_INCLUDES) +LOCAL_CFLAGS += $(COMMON_CFLAGS) + +ifneq ($(TARGET_ARCH),arm) +LOCAL_LDLIBS += -lpthread -ldl +endif + +LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES) +LOCAL_MODULE_TAGS := debug +include $(BUILD_EXECUTABLE) +endif # !SDK_ONLY + + +################################################################################ +##device commande line tool:db_upgrade +################################################################################ +ifneq ($(SDK_ONLY),true) # SDK doesn't need device version of db_upgrade +include $(CLEAR_VARS) +LOCAL_MODULE := db_upgrade + +LOCAL_ARM_MODE := arm +LOCAL_STATIC_LIBRARIES := libdb_sql_static # Based on above static library +LOCAL_SRC_FILES := \ + $(BDB_TOP)/util/db_upgrade.c \ + $(BDB_TOP)/src/common/util_sig.c + +# Import common flags +LOCAL_C_INCLUDES += $(COMMON_C_INCLUDES) +LOCAL_CFLAGS += $(COMMON_CFLAGS) + +ifneq ($(TARGET_ARCH),arm) +LOCAL_LDLIBS += -lpthread -ldl +endif + +LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES) +LOCAL_MODULE_TAGS := debug +include $(BUILD_EXECUTABLE) +endif # !SDK_ONLY + + +################################################################################ +##device commande line tool:db_verify +################################################################################ +ifneq ($(SDK_ONLY),true) # SDK doesn't need device version of db_verify +include $(CLEAR_VARS) +LOCAL_MODULE := db_verify + +LOCAL_ARM_MODE := arm +LOCAL_STATIC_LIBRARIES := libdb_sql_static # Based on above static library +LOCAL_SRC_FILES := \ + $(BDB_TOP)/util/db_verify.c \ + $(BDB_TOP)/src/common/util_cache.c \ + $(BDB_TOP)/src/common/util_sig.c + +# Import common flags +LOCAL_C_INCLUDES += $(COMMON_C_INCLUDES) +LOCAL_CFLAGS += $(COMMON_CFLAGS) + +ifneq ($(TARGET_ARCH),arm) +LOCAL_LDLIBS += -lpthread -ldl +endif + +LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES) +LOCAL_MODULE_TAGS := debug +include $(BUILD_EXECUTABLE) +endif # !SDK_ONLY + + +################################################################################ +##device commande line tool:db_log_verify +################################################################################ +ifneq ($(SDK_ONLY),true) # SDK doesn't need device version of db_log_verify +include $(CLEAR_VARS) +LOCAL_MODULE := db_log_verify + +LOCAL_ARM_MODE := arm +LOCAL_STATIC_LIBRARIES := libdb_sql_static # Based on above static library +LOCAL_SRC_FILES := \ + $(BDB_TOP)/util/db_log_verify.c \ + $(BDB_TOP)/src/common/util_cache.c \ + $(BDB_TOP)/src/common/util_sig.c + +# Import common flags +LOCAL_C_INCLUDES += $(COMMON_C_INCLUDES) +LOCAL_CFLAGS += $(COMMON_CFLAGS) + +ifneq ($(TARGET_ARCH),arm) +LOCAL_LDLIBS += -lpthread -ldl +endif + +LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES) +LOCAL_MODULE_TAGS := debug +include $(BUILD_EXECUTABLE) +endif # !SDK_ONLY diff --git a/dist/api_flags b/dist/api_flags index 9d606670..d269c900 100644 --- a/dist/api_flags +++ b/dist/api_flags @@ -14,6 +14,7 @@ DbEnv.backup DbEnv.close # Sync database when automatically closing its db handles. DB_FORCESYNC + DB_FORCESYNCENV # Sync mmap()ed regions on close DbEnv.dbremove DB_AUTO_COMMIT # Implied transaction @@ -100,10 +101,12 @@ DbEnv.log_put DB_LOG_WRNOSYNC # UNDOC: Write, don't sync log_put DbEnv.log_set_config + DB_LOG_AUTO_REMOVE # Automatically remove log files + DB_LOG_BLOB # Full logging of blob files DB_LOG_DIRECT # Don't buffer log files in the OS DB_LOG_DSYNC # Set O_DSYNC on the log - DB_LOG_AUTO_REMOVE # Automatically remove log files DB_LOG_IN_MEMORY # Store logs in buffers in memory + DB_LOG_NOSYNC # Don't fsync log files during flush DB_LOG_ZERO # Zero log file on creation DbEnv.log_stat @@ -133,9 +136,10 @@ DbEnv.mutex_alloc DB_MUTEX_ALLOCATED # UNDOC: Mutex currently allocated DB_MUTEX_LOCKED # UNDOC: Mutex currently locked DB_MUTEX_LOGICAL_LOCK # UNDOC: Mutex backs a database lock + DB_MUTEX_OWNER_DEAD # UNDOC: The owning thread has died DB_MUTEX_PROCESS_ONLY # Mutex private to a process DB_MUTEX_SELF_BLOCK # Must be able to block self - DB_MUTEX_SHARED # Shared (read/write) mutex + DB_MUTEX_SHARED # Sharable (read/write) latch DbEnv.mutex_stat DB_STAT_CLEAR # Clear stats after return @@ -154,10 +158,13 @@ DbEnv.remove DbEnv.rep_set_config DB_REPMGR_CONF_2SITE_STRICT # Don't cheat on election votes DB_REPMGR_CONF_ELECTIONS # Manage elections to choose master + DB_REPMGR_CONF_PREFMAS_CLIENT # Preferred master client site + DB_REPMGR_CONF_PREFMAS_MASTER # Preferred master site DB_REP_CONF_AUTOINIT # automatic client init DB_REP_CONF_AUTOROLLBACK # UNDOC: discard txns to sync w/ master DB_REP_CONF_BULK # Bulk transfer DB_REP_CONF_DELAYCLIENT # Delay client synchronization + DB_REP_CONF_ELECT_LOGLENGTH # UNDOC: longest log wins election DB_REP_CONF_INMEM # In-memory replication DB_REP_CONF_LEASE # Master leases DB_REP_CONF_NOWAIT # Don't wait, return error @@ -236,16 +243,18 @@ DbEnv.set_isalive DB_MUTEX_SELF_BLOCK # Must be able to block self DbEnv.set_timeout + DB_SET_MUTEX_FAILCHK_TIMEOUT # Mutex support for failchk broadcasting DB_SET_LOCK_TIMEOUT # Set lock timeout + DB_SET_REG_TIMEOUT # Set dbregister timeout DB_SET_TXN_NOW # UNDOC: Timeout lock now DB_SET_TXN_TIMEOUT # Set transaction timeout - DB_SET_REG_TIMEOUT # Set dbregister timeout DbEnv.set_verbose DB_VERB_BACKUP # Backup information DB_VERB_DEADLOCK # Deadlock detection information DB_VERB_FILEOPS # Major file operations DB_VERB_FILEOPS_ALL # All file operations + DB_VERB_MVCC # Freezing, thawing & version management DB_VERB_RECOVERY # Recovery information DB_VERB_REGISTER # Dump waits-for table DB_VERB_REPLICATION # All replication and repmgr output @@ -449,6 +458,7 @@ Db.open # The following flags aren't actually part of the Db.open method # API, but they are accepted by the underlying __db_open function. DB_DURABLE_UNKNOWN # UNDOC: Durability on open + DB_INTERNAL_BLOB_DB # UNDOC: Open db in blob dir DB_INTERNAL_PERSISTENT_DB # UNDOC: Open db in metadata dir DB_INTERNAL_TEMPORARY_DB # UNDOC: Open db in env home dir DB_NOERROR # UNDOC: Don't raise errors. diff --git a/dist/api_flags.c b/dist/api_flags.c index a546a0c0..b69bcca3 100644 --- a/dist/api_flags.c +++ b/dist/api_flags.c @@ -1,7 +1,7 @@ /*- * See the file LICENSE for redistribution information. * - * Copyright (c) 1996, 2012 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1996, 2015 Oracle and/or its affiliates. All rights reserved. */ #include <sys/types.h> diff --git a/dist/buildpkg b/dist/buildpkg index a7a4385c..8c25b76d 100644 --- a/dist/buildpkg +++ b/dist/buildpkg @@ -57,8 +57,8 @@ START_DIR=`pwd` D=`pwd`/../release R="$D/db-${VERSION}" RNC="$D/db-$VERSION.NC" -DOCS=`pwd`/../../docs_books-5.3 -DB_ADDONS=`pwd`/../../db_addons-5.3 +DOCS=`pwd`/../../docs_books-6.1 +DB_ADDONS=`pwd`/../../db_addons-6.1 if [ ! -d $DB_ADDONS ]; then echo "buildpkg requires a db_addons repository at the same level as the db repository." @@ -136,7 +136,7 @@ fi # Build the ADO.NET package, including moving the ADO.NET doc built above # into that package. # Tell the script where to look for packages. -cd $R/dist && sh s_sql_drivers ../../../.. +cd $R/dist && sh s_sql_drivers -addons ../../../.. # Warn if s_sql_drivers didn't move its docs. if [ -e "$R/docs/bdb-sql-ado" ]; then echo "WARNING: ADO.NET doc is still in the non ADO.NET package." diff --git a/dist/config.guess b/dist/config.guess index 8152efd6..1f5c50c0 100755 --- a/dist/config.guess +++ b/dist/config.guess @@ -1,14 +1,12 @@ #! /bin/sh # Attempt to guess a canonical system name. -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, -# 2011 Free Software Foundation, Inc. +# Copyright 1992-2014 Free Software Foundation, Inc. -timestamp='2011-11-11' +timestamp='2014-03-23' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or +# the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but @@ -17,26 +15,22 @@ timestamp='2011-11-11' # General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA -# 02110-1301, USA. +# along with this program; if not, see <http://www.gnu.org/licenses/>. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - - -# Originally written by Per Bothner. Please send patches (context -# diff format) to <config-patches@gnu.org> and include a ChangeLog -# entry. +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). # -# This script attempts to guess a canonical system name similar to -# config.sub. If it succeeds, it prints the system name on stdout, and -# exits with 0. Otherwise, it exits with 1. +# Originally written by Per Bothner. # # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD +# +# Please send patches with a ChangeLog entry to config-patches@gnu.org. + me=`echo "$0" | sed -e 's,.*/,,'` @@ -56,9 +50,7 @@ version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, -2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free -Software Foundation, Inc. +Copyright 1992-2014 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -140,12 +132,33 @@ UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown +case "${UNAME_SYSTEM}" in +Linux|GNU|GNU/*) + # If the system lacks a compiler, then just pick glibc. + # We could probably try harder. + LIBC=gnu + + eval $set_cc_for_build + cat <<-EOF > $dummy.c + #include <features.h> + #if defined(__UCLIBC__) + LIBC=uclibc + #elif defined(__dietlibc__) + LIBC=dietlibc + #else + LIBC=gnu + #endif + EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` + ;; +esac + # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or - # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, + # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward @@ -202,6 +215,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; + *:Bitrig:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} + exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} @@ -304,7 +321,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; - arm:riscos:*:*|arm:RISCOS:*:*) + arm*:riscos:*:*|arm*:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) @@ -803,10 +820,13 @@ EOF i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; + *:MINGW64*:*) + echo ${UNAME_MACHINE}-pc-mingw64 + exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; - i*:MSYS*:*) + *:MSYS*:*) echo ${UNAME_MACHINE}-pc-msys exit ;; i*:windows32*:*) @@ -854,15 +874,22 @@ EOF exit ;; *:GNU:*:*) # the GNU system - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland - echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu + echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; + aarch64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + aarch64_be:Linux:*:*) + UNAME_MACHINE=aarch64_be + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; @@ -874,59 +901,54 @@ EOF EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep -q ld.so.1 - if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi - echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} + if test "$?" = 0 ; then LIBC="gnulibc1" ; fi + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + arc:Linux:*:* | arceb:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; arm*:Linux:*:*) eval $set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} else if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_PCS_VFP then - echo ${UNAME_MACHINE}-unknown-linux-gnueabi + echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi else - echo ${UNAME_MACHINE}-unknown-linux-gnueabihf + echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf fi fi exit ;; avr32*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; cris:Linux:*:*) - echo cris-axis-linux-gnu + echo ${UNAME_MACHINE}-axis-linux-${LIBC} exit ;; crisv32:Linux:*:*) - echo crisv32-axis-linux-gnu + echo ${UNAME_MACHINE}-axis-linux-${LIBC} exit ;; frv:Linux:*:*) - echo frv-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; hexagon:Linux:*:*) - echo hexagon-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; i*86:Linux:*:*) - LIBC=gnu - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #ifdef __dietlibc__ - LIBC=dietlibc - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` - echo "${UNAME_MACHINE}-pc-linux-${LIBC}" + echo ${UNAME_MACHINE}-pc-linux-${LIBC} exit ;; ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; m32r*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; mips:Linux:*:* | mips64:Linux:*:*) eval $set_cc_for_build @@ -945,54 +967,63 @@ EOF #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` - test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } + test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } ;; - or32:Linux:*:*) - echo or32-unknown-linux-gnu + openrisc*:Linux:*:*) + echo or1k-unknown-linux-${LIBC} + exit ;; + or32:Linux:*:* | or1k*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; padre:Linux:*:*) - echo sparc-unknown-linux-gnu + echo sparc-unknown-linux-${LIBC} exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-gnu + echo hppa64-unknown-linux-${LIBC} exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-unknown-linux-gnu ;; - PA8*) echo hppa2.0-unknown-linux-gnu ;; - *) echo hppa-unknown-linux-gnu ;; + PA7*) echo hppa1.1-unknown-linux-${LIBC} ;; + PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; + *) echo hppa-unknown-linux-${LIBC} ;; esac exit ;; ppc64:Linux:*:*) - echo powerpc64-unknown-linux-gnu + echo powerpc64-unknown-linux-${LIBC} exit ;; ppc:Linux:*:*) - echo powerpc-unknown-linux-gnu + echo powerpc-unknown-linux-${LIBC} + exit ;; + ppc64le:Linux:*:*) + echo powerpc64le-unknown-linux-${LIBC} + exit ;; + ppcle:Linux:*:*) + echo powerpcle-unknown-linux-${LIBC} exit ;; s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux + echo ${UNAME_MACHINE}-ibm-linux-${LIBC} exit ;; sh64*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; tile*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; vax:Linux:*:*) - echo ${UNAME_MACHINE}-dec-linux-gnu + echo ${UNAME_MACHINE}-dec-linux-${LIBC} exit ;; x86_64:Linux:*:*) - echo x86_64-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; xtensa*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. @@ -1196,6 +1227,9 @@ EOF BePC:Haiku:*:*) # Haiku running on Intel PC compatible. echo i586-pc-haiku exit ;; + x86_64:Haiku:*:*) + echo x86_64-unknown-haiku + exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; @@ -1222,19 +1256,31 @@ EOF exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown - case $UNAME_PROCESSOR in - i386) - eval $set_cc_for_build - if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then - if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_64BIT_ARCH >/dev/null - then - UNAME_PROCESSOR="x86_64" - fi - fi ;; - unknown) UNAME_PROCESSOR=powerpc ;; - esac + eval $set_cc_for_build + if test "$UNAME_PROCESSOR" = unknown ; then + UNAME_PROCESSOR=powerpc + fi + if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then + if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + case $UNAME_PROCESSOR in + i386) UNAME_PROCESSOR=x86_64 ;; + powerpc) UNAME_PROCESSOR=powerpc64 ;; + esac + fi + fi + elif test "$UNAME_PROCESSOR" = i386 ; then + # Avoid executing cc on OS X 10.9, as it ships with a stub + # that puts up a graphical alert prompting to install + # developer tools. Any system running Mac OS X 10.7 or + # later (Darwin 11 and later) is required to have a 64-bit + # processor. This is not true of the ARM version of Darwin + # that Apple uses in portable devices. + UNAME_PROCESSOR=x86_64 + fi echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) @@ -1251,7 +1297,7 @@ EOF NEO-?:NONSTOP_KERNEL:*:*) echo neo-tandem-nsk${UNAME_RELEASE} exit ;; - NSE-?:NONSTOP_KERNEL:*:*) + NSE-*:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) @@ -1320,158 +1366,10 @@ EOF i*86:AROS:*:*) echo ${UNAME_MACHINE}-pc-aros exit ;; -esac - -#echo '(No uname command or uname output not recognized.)' 1>&2 -#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 - -eval $set_cc_for_build -cat >$dummy.c <<EOF -#ifdef _SEQUENT_ -# include <sys/types.h> -# include <sys/utsname.h> -#endif -main () -{ -#if defined (sony) -#if defined (MIPSEB) - /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, - I don't know.... */ - printf ("mips-sony-bsd\n"); exit (0); -#else -#include <sys/param.h> - printf ("m68k-sony-newsos%s\n", -#ifdef NEWSOS4 - "4" -#else - "" -#endif - ); exit (0); -#endif -#endif - -#if defined (__arm) && defined (__acorn) && defined (__unix) - printf ("arm-acorn-riscix\n"); exit (0); -#endif - -#if defined (hp300) && !defined (hpux) - printf ("m68k-hp-bsd\n"); exit (0); -#endif - -#if defined (NeXT) -#if !defined (__ARCHITECTURE__) -#define __ARCHITECTURE__ "m68k" -#endif - int version; - version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; - if (version < 4) - printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); - else - printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); - exit (0); -#endif - -#if defined (MULTIMAX) || defined (n16) -#if defined (UMAXV) - printf ("ns32k-encore-sysv\n"); exit (0); -#else -#if defined (CMU) - printf ("ns32k-encore-mach\n"); exit (0); -#else - printf ("ns32k-encore-bsd\n"); exit (0); -#endif -#endif -#endif - -#if defined (__386BSD__) - printf ("i386-pc-bsd\n"); exit (0); -#endif - -#if defined (sequent) -#if defined (i386) - printf ("i386-sequent-dynix\n"); exit (0); -#endif -#if defined (ns32000) - printf ("ns32k-sequent-dynix\n"); exit (0); -#endif -#endif - -#if defined (_SEQUENT_) - struct utsname un; - - uname(&un); - - if (strncmp(un.version, "V2", 2) == 0) { - printf ("i386-sequent-ptx2\n"); exit (0); - } - if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ - printf ("i386-sequent-ptx1\n"); exit (0); - } - printf ("i386-sequent-ptx\n"); exit (0); - -#endif - -#if defined (vax) -# if !defined (ultrix) -# include <sys/param.h> -# if defined (BSD) -# if BSD == 43 - printf ("vax-dec-bsd4.3\n"); exit (0); -# else -# if BSD == 199006 - printf ("vax-dec-bsd4.3reno\n"); exit (0); -# else - printf ("vax-dec-bsd\n"); exit (0); -# endif -# endif -# else - printf ("vax-dec-bsd\n"); exit (0); -# endif -# else - printf ("vax-dec-ultrix\n"); exit (0); -# endif -#endif - -#if defined (alliant) && defined (i860) - printf ("i860-alliant-bsd\n"); exit (0); -#endif - - exit (1); -} -EOF - -$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && - { echo "$SYSTEM_NAME"; exit; } - -# Apollos put the system type in the environment. - -test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } - -# Convex versions that predate uname can use getsysinfo(1) - -if [ -x /usr/convex/getsysinfo ] -then - case `getsysinfo -f cpu_type` in - c1*) - echo c1-convex-bsd - exit ;; - c2*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit ;; - c34*) - echo c34-convex-bsd + x86_64:VMkernel:*:*) + echo ${UNAME_MACHINE}-unknown-esx exit ;; - c38*) - echo c38-convex-bsd - exit ;; - c4*) - echo c4-convex-bsd - exit ;; - esac -fi +esac cat >&2 <<EOF $0: unable to guess system type diff --git a/dist/config.hin b/dist/config.hin index 50e00a05..18af622f 100644 --- a/dist/config.hin +++ b/dist/config.hin @@ -95,12 +95,19 @@ /* Define to 1 to use dtrace for performance monitoring. */ #undef HAVE_DTRACE +/* Define to 1 if you want a version that records extra information about + errors. */ +#undef HAVE_ERROR_HISTORY + /* Define to 1 if you have the <execinfo.h> header file. */ #undef HAVE_EXECINFO_H /* Define to 1 if platform has EXIT_SUCCESS/EXIT_FAILURE #defines. */ #undef HAVE_EXIT_SUCCESS +/* Define to 1 for failchk to inform all waiting threads about crashes. */ +#undef HAVE_FAILCHK_BROADCAST + /* Define to 1 if you have the `fchmod' function. */ #undef HAVE_FCHMOD @@ -170,6 +177,9 @@ /* Define to 1 if you have the `hstrerror' function. */ #undef HAVE_HSTRERROR +/* Define to 1 if you have the `initstate_r' function. */ +#undef HAVE_INITSTATE_R + /* Define to 1 if you have the <inttypes.h> header file. */ #undef HAVE_INTTYPES_H @@ -191,6 +201,9 @@ /* Define to 1 if you have the `localtime' function. */ #undef HAVE_LOCALTIME +/* Define to 1 if you have the `localtime_r' function. */ +#undef HAVE_LOCALTIME_R + /* Define to 1 if enabling checksums in log records. */ #undef HAVE_LOG_CHECKSUM @@ -364,6 +377,15 @@ pthread_cond_t. */ #undef HAVE_PTHREAD_COND_REINIT_OKAY +/* Define to 1 if you have the `pthread_getspecific' function. */ +#undef HAVE_PTHREAD_GETSPECIFIC + +/* Define to 1 if you have the `pthread_key_create' function. */ +#undef HAVE_PTHREAD_KEY_CREATE + +/* Define to 1 if you have the `pthread_once' function. */ +#undef HAVE_PTHREAD_ONCE + /* Define to 1 if it is OK to initialize an already initialized pthread_rwlock_t. */ #undef HAVE_PTHREAD_RWLOCK_REINIT_OKAY @@ -371,6 +393,9 @@ /* Define to 1 if you have the `pthread_self' function. */ #undef HAVE_PTHREAD_SELF +/* Define to 1 if you have the `pthread_setspecific' function. */ +#undef HAVE_PTHREAD_SETSPECIFIC + /* Define to 1 if you have the `pthread_yield' function. */ #undef HAVE_PTHREAD_YIELD @@ -395,6 +420,9 @@ /* Define to 1 if you have the `random' function. */ #undef HAVE_RANDOM +/* Define to 1 if you have the `random_r' function. */ +#undef HAVE_RANDOM_R + /* Define to 1 if building replication support. */ #undef HAVE_REPLICATION @@ -431,6 +459,9 @@ /* Define to 1 if you have the `snprintf' function. */ #undef HAVE_SNPRINTF +/* Define to 1 if you have the `srandom_r' function. */ +#undef HAVE_SRANDOM_R + /* Define to 1 if you have the `stat' function. */ #undef HAVE_STAT @@ -443,7 +474,7 @@ /* Define to 1 if you have the <stdlib.h> header file. */ #undef HAVE_STDLIB_H -/* Define to 1 if you have the `strcasecmp' function. */ +/* Define to 1 if you have the strcasecmp symbol. */ #undef HAVE_STRCASECMP /* Define to 1 if you have the `strcat' function. */ @@ -587,6 +618,9 @@ /* The size of `long long', as computed by sizeof. */ #undef SIZEOF_LONG_LONG +/* The size of `off_t', as computed by sizeof. */ +#undef SIZEOF_OFF_T + /* The size of `short', as computed by sizeof. */ #undef SIZEOF_SHORT @@ -620,6 +654,11 @@ /* Define to 1 to mask harmless uninitialized memory read/writes. */ #undef UMRW +/* Enable large inode numbers on Mac OS X 10.5. */ +#ifndef _DARWIN_USE_64_BIT_INODE +# define _DARWIN_USE_64_BIT_INODE 1 +#endif + /* Number of bits in a file offset, on hosts where this is settable. */ #undef _FILE_OFFSET_BITS diff --git a/dist/config.sub b/dist/config.sub index e76eaf47..6acbfacd 100755 --- a/dist/config.sub +++ b/dist/config.sub @@ -1,38 +1,31 @@ #! /bin/sh # Configuration validation subroutine script. -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, -# 2011 Free Software Foundation, Inc. +# Copyright 1992-2014 Free Software Foundation, Inc. -timestamp='2011-11-11' +timestamp='2014-04-03' -# This file is (in principle) common to ALL GNU software. -# The presence of a machine in this file suggests that SOME GNU software -# can handle that machine. It does not imply ALL GNU software can. -# -# This file is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA -# 02110-1301, USA. +# along with this program; if not, see <http://www.gnu.org/licenses/>. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). -# Please send patches to <config-patches@gnu.org>. Submit a context -# diff and a properly formatted GNU ChangeLog entry. +# Please send patches with a ChangeLog entry to config-patches@gnu.org. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. @@ -75,9 +68,7 @@ Report bugs and patches to <config-patches@gnu.org>." version="\ GNU config.sub ($timestamp) -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, -2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free -Software Foundation, Inc. +Copyright 1992-2014 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -125,13 +116,17 @@ esac maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ - linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ + linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ knetbsd*-gnu* | netbsd*-gnu* | \ kopensolaris*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; + android-linux) + os=-linux-android + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown + ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] @@ -154,7 +149,7 @@ case $os in -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ - -apple | -axis | -knuth | -cray | -microblaze) + -apple | -axis | -knuth | -cray | -microblaze*) os= basic_machine=$1 ;; @@ -223,6 +218,12 @@ case $os in -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; + -lynx*178) + os=-lynxos178 + ;; + -lynx*5) + os=-lynxos5 + ;; -lynx*) os=-lynxos ;; @@ -247,13 +248,16 @@ case $basic_machine in # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ + | aarch64 | aarch64_be \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ - | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ - | be32 | be64 \ + | arc | arceb \ + | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ + | avr | avr32 \ + | be32 | be64 \ | bfin \ - | c4x | clipper \ + | c4x | c8051 | clipper \ | d10v | d30v | dlx | dsp16xx \ | epiphany \ | fido | fr30 | frv \ @@ -261,10 +265,11 @@ case $basic_machine in | hexagon \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ + | k1om \ | le32 | le64 \ | lm32 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ - | maxq | mb | microblaze | mcore | mep | metag \ + | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ @@ -282,16 +287,16 @@ case $basic_machine in | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ + | mipsr5900 | mipsr5900el \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | moxie \ | mt \ | msp430 \ | nds32 | nds32le | nds32be \ - | nios | nios2 \ + | nios | nios2 | nios2eb | nios2el \ | ns16k | ns32k \ - | open8 \ - | or32 \ + | open8 | or1k | or1knd | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle \ | pyramid \ @@ -319,8 +324,7 @@ case $basic_machine in c6x) basic_machine=tic6x-unknown ;; - m6811 | m68hc11 | m6812 | m68hc12 | picochip) - # Motorola 68HC11/12. + m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) basic_machine=$basic_machine-unknown os=-none ;; @@ -333,7 +337,10 @@ case $basic_machine in strongarm | thumb | xscale) basic_machine=arm-unknown ;; - + xgate) + basic_machine=$basic_machine-unknown + os=-none + ;; xscaleeb) basic_machine=armeb-unknown ;; @@ -356,15 +363,16 @@ case $basic_machine in # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ + | aarch64-* | aarch64_be-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ - | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ + | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | be32-* | be64-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* \ - | clipper-* | craynv-* | cydra-* \ + | c8051-* | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ @@ -373,11 +381,13 @@ case $basic_machine in | hexagon-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ + | k1om-* \ | le32-* | le64-* \ | lm32-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \ + | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ + | microblaze-* | microblazeel-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ @@ -395,14 +405,16 @@ case $basic_machine in | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ + | mipsr5900-* | mipsr5900el-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nds32-* | nds32le-* | nds32be-* \ - | nios-* | nios2-* \ + | nios-* | nios2-* | nios2eb-* | nios2el-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | open8-* \ + | or1k*-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ @@ -719,7 +731,6 @@ case $basic_machine in i370-ibm* | ibm*) basic_machine=i370-ibm ;; -# I'm not sure what "Sysv32" means. Should this be sysv3.2? i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 @@ -777,11 +788,15 @@ case $basic_machine in basic_machine=ns32k-utek os=-sysv ;; - microblaze) + microblaze*) basic_machine=microblaze-xilinx ;; + mingw64) + basic_machine=x86_64-pc + os=-mingw64 + ;; mingw32) - basic_machine=i386-pc + basic_machine=i686-pc os=-mingw32 ;; mingw32ce) @@ -817,7 +832,7 @@ case $basic_machine in basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; msys) - basic_machine=i386-pc + basic_machine=i686-pc os=-msys ;; mvs) @@ -1008,7 +1023,11 @@ case $basic_machine in basic_machine=i586-unknown os=-pw32 ;; - rdos) + rdos | rdos64) + basic_machine=x86_64-pc + os=-rdos + ;; + rdos32) basic_machine=i386-pc os=-rdos ;; @@ -1335,21 +1354,21 @@ case $os in -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ - | -sym* | -kopensolaris* \ + | -sym* | -kopensolaris* | -plan9* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* | -aros* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ - | -openbsd* | -solidbsd* \ + | -bitrig* | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* | -cegcc* \ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -mingw32* | -linux-gnu* | -linux-android* \ - | -linux-newlib* | -linux-uclibc* \ + | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ + | -linux-newlib* | -linux-musl* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ @@ -1357,7 +1376,7 @@ case $os in | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ - | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) + | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* | -tirtos*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) @@ -1481,9 +1500,6 @@ case $os in -aros*) os=-aros ;; - -kaos*) - os=-kaos - ;; -zvmoe) os=-zvmoe ;; @@ -1532,6 +1548,12 @@ case $basic_machine in c4x-* | tic4x-*) os=-coff ;; + c8051-*) + os=-elf + ;; + hexagon-*) + os=-elf + ;; tic54x-*) os=-coff ;; @@ -1559,9 +1581,6 @@ case $basic_machine in ;; m68000-sun) os=-sunos3 - # This also exists in the configure program, but was not the - # default. - # os=-sunos4 ;; m68*-cisco) os=-aout diff --git a/dist/configure b/dist/configure index db718de0..4a63d8ef 100755 --- a/dist/configure +++ b/dist/configure @@ -1,13 +1,11 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.68 for Berkeley DB 5.3.21. +# Generated by GNU Autoconf 2.69 for Berkeley DB 6.1.23. # # Report bugs to <Oracle Technology Network Berkeley DB forum>. # # -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, -# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software -# Foundation, Inc. +# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. # # # This configure script is free software; the Free Software Foundation @@ -136,6 +134,31 @@ export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH +# Use a proper internal environment variable to ensure we don't fall + # into an infinite loop, continuously re-executing ourselves. + if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then + _as_can_reexec=no; export _as_can_reexec; + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +as_fn_exit 255 + fi + # We don't want this to propagate to other subprocesses. + { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh @@ -169,7 +192,8 @@ if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi -test x\$exitcode = x0 || exit 1" +test x\$exitcode = x0 || exit 1 +test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && @@ -222,21 +246,25 @@ IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : - # We cannot yet assume a decent shell, so we have to provide a - # neutralization value for shells without unset; and this also - # works around shells that cannot unset nonexistent variables. - # Preserve -v and -x to the replacement shell. - BASH_ENV=/dev/null - ENV=/dev/null - (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV - export CONFIG_SHELL - case $- in # (((( - *v*x* | *x*v* ) as_opts=-vx ;; - *v* ) as_opts=-v ;; - *x* ) as_opts=-x ;; - * ) as_opts= ;; - esac - exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"} + export CONFIG_SHELL + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +exit 255 fi if test x$as_have_required = xno; then : @@ -339,6 +367,14 @@ $as_echo X"$as_dir" | } # as_fn_mkdir_p + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take @@ -460,6 +496,10 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + # If we had to re-execute with $CONFIG_SHELL, we're ensured to have + # already done that, so ensure we don't try to do so again and fall + # in an infinite loop. This has already happened in practice. + _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). @@ -494,16 +534,16 @@ if (echo >conf$$.file) 2>/dev/null; then # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. + # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -p' + as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null @@ -515,28 +555,8 @@ else as_mkdir_p=false fi -if test -x / >/dev/null 2>&1; then - as_test_x='test -x' -else - if ls -dL / >/dev/null 2>&1; then - as_ls_L_option=L - else - as_ls_L_option= - fi - as_test_x=' - eval sh -c '\'' - if test -d "$1"; then - test -d "$1/."; - else - case $1 in #( - -*)set "./$1";; - esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( - ???[sx]*):;;*)false;;esac;fi - '\'' sh - ' -fi -as_executable_p=$as_test_x +as_test_x='test -x' +as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" @@ -569,15 +589,15 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Berkeley DB' -PACKAGE_TARNAME='db-5.3.21' -PACKAGE_VERSION='5.3.21' -PACKAGE_STRING='Berkeley DB 5.3.21' +PACKAGE_TARNAME='db-6.1.23' +PACKAGE_VERSION='6.1.23' +PACKAGE_STRING='Berkeley DB 6.1.23' PACKAGE_BUGREPORT='Oracle Technology Network Berkeley DB forum' PACKAGE_URL='' ac_unique_file="../src/db/db.c" enable_option_checking=no -ac_default_prefix=/usr/local/BerkeleyDB.5.3 +ac_default_prefix=/usr/local/BerkeleyDB.6.1 # Factoring default headers for most tests. ac_includes_default="\ #include <stdio.h> @@ -635,6 +655,7 @@ ssize_t_decl time_t_decl size_t_decl pid_t_decl +db_off_t_decl off_t_decl FILE_t_decl int64_decl @@ -735,6 +756,7 @@ MAKEFILE_CXXLINK MAKEFILE_CXX MAKEFILE_CCLINK MAKEFILE_CC +LIBSQLSO_LIBS LIBXSO_LIBS LIBTSO_MODULE LIBTSO_MODSUFFIX @@ -841,6 +863,7 @@ enable_cxx enable_debug enable_debug_rop enable_debug_wop +enable_error_history enable_diagnostic enable_dump185 enable_java @@ -865,17 +888,18 @@ enable_dbm enable_dtrace enable_systemtap enable_perfmon_statistics +enable_failchk_broadcast enable_uimutexes enable_umrw enable_atomicfileread -enable_cryptography -with_cryptography with_mutex with_mutexalign with_stacksize with_tcl with_uniquename enable_readline +enable_cryptography +with_cryptography enable_shared enable_static with_pic @@ -1353,8 +1377,6 @@ target=$target_alias if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe - $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host. - If a cross compiler is detected then cross compile mode will be used" >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi @@ -1440,7 +1462,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Berkeley DB 5.3.21 to adapt to many kinds of systems. +\`configure' configures Berkeley DB 6.1.23 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1489,7 +1511,7 @@ Fine tuning of the installation directories: --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root - [DATAROOTDIR/doc/db-5.3.21] + [DATAROOTDIR/doc/db-6.1.23] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] @@ -1511,7 +1533,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Berkeley DB 5.3.21:";; + short | recursive ) echo "Configuration of Berkeley DB 6.1.23:";; esac cat <<\_ACEOF @@ -1537,6 +1559,8 @@ Optional Features: --enable-debug Build a debugging version. --enable-debug_rop Build a version that logs read operations. --enable-debug_wop Build a version that logs write operations. + --enable-error_history Build a version that records extra information about + errors --enable-diagnostic Build a version with run-time diagnostics. --enable-dump185 Build db_dump185(1) to dump 1.85 databases. --enable-java Build Java API. @@ -1563,6 +1587,9 @@ Optional Features: --enable-perfmon-statistics Configure to build in performance monitoring of statistics values [default=no]. + --enable-failchk_broadcast + Add support for immediately broadcasting failchk + events to all waiting threads --enable-uimutexes Force use of Unix International mutexes. --enable-umrw Mask harmless uninitialized memory read/writes. --enable-atomicfileread Indicate that the platform reads and writes files @@ -1578,14 +1605,15 @@ Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-jdbc=DIR Specify source directory of JDBC. - --with-cryptography=yes|no|ipp - Build database cryptography support [default=yes]. --with-mutex=MUTEX Select non-default mutex implementation. --with-mutexalign=ALIGNMENT Obsolete; use DbEnv::mutex_set_align instead. --with-stacksize=SIZE Set the stack size for Berkeley DB threads. --with-tcl=DIR Directory location of tclConfig.sh. --with-uniquename=NAME Build a uniquely named library. + --with-cryptography=yes|no|ipp + Build database cryptography support. The default + value is "yes", unless building the SQL library. --with-pic try to use only PIC/non-PIC objects [default=use both] --with-gnu-ld assume the C compiler uses GNU ld [default=no] @@ -1671,10 +1699,10 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Berkeley DB configure 5.3.21 -generated by GNU Autoconf 2.68 +Berkeley DB configure 6.1.23 +generated by GNU Autoconf 2.69 -Copyright (C) 2010 Free Software Foundation, Inc. +Copyright (C) 2012 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF @@ -1825,7 +1853,7 @@ $as_echo "$ac_try_echo"; } >&5 test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext + test -x conftest$ac_exeext }; then : ac_retval=0 else @@ -2048,7 +2076,7 @@ $as_echo "$ac_try_echo"; } >&5 test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext + test -x conftest$ac_exeext }; then : ac_retval=0 else @@ -2232,7 +2260,8 @@ int main () { static int test_array [1 - 2 * !(($2) >= 0)]; -test_array [0] = 0 +test_array [0] = 0; +return test_array [0]; ; return 0; @@ -2248,7 +2277,8 @@ int main () { static int test_array [1 - 2 * !(($2) <= $ac_mid)]; -test_array [0] = 0 +test_array [0] = 0; +return test_array [0]; ; return 0; @@ -2274,7 +2304,8 @@ int main () { static int test_array [1 - 2 * !(($2) < 0)]; -test_array [0] = 0 +test_array [0] = 0; +return test_array [0]; ; return 0; @@ -2290,7 +2321,8 @@ int main () { static int test_array [1 - 2 * !(($2) >= $ac_mid)]; -test_array [0] = 0 +test_array [0] = 0; +return test_array [0]; ; return 0; @@ -2324,7 +2356,8 @@ int main () { static int test_array [1 - 2 * !(($2) <= $ac_mid)]; -test_array [0] = 0 +test_array [0] = 0; +return test_array [0]; ; return 0; @@ -2446,12 +2479,58 @@ $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_type + +# ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES +# --------------------------------------------- +# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR +# accordingly. +ac_fn_c_check_decl () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + as_decl_name=`echo $2|sed 's/ *(.*//'` + as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'` + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5 +$as_echo_n "checking whether $as_decl_name is declared... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +#ifndef $as_decl_name +#ifdef __cplusplus + (void) $as_decl_use; +#else + (void) $as_decl_name; +#endif +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_decl cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Berkeley DB $as_me 5.3.21, which was -generated by GNU Autoconf 2.68. Invocation command line was +It was created by Berkeley DB $as_me 6.1.23, which was +generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2997,6 +3076,7 @@ topdir=`echo "$srcdir/.." | sed 's,/dist/\.\.,,'` + # The Windows public header has two extra symbols we need to remove. @@ -3006,19 +3086,19 @@ topdir=`echo "$srcdir/.." | sed 's,/dist/\.\.,,'` # Configure the version information. -DB_VERSION_FAMILY="11" +DB_VERSION_FAMILY="12" -DB_VERSION_RELEASE="2" +DB_VERSION_RELEASE="1" -DB_VERSION_MAJOR="5" +DB_VERSION_MAJOR="6" -DB_VERSION_MINOR="3" +DB_VERSION_MINOR="1" -DB_VERSION_PATCH="21" +DB_VERSION_PATCH="23" -DB_VERSION_STRING='"Berkeley DB 5.3.21: (May 11, 2012)"' +DB_VERSION_STRING='"Berkeley DB 6.1.23: (February 17, 2015)"' -DB_VERSION_FULL_STRING='"Berkeley DB 11g Release 2, library version 11.2.5.3.21: (May 11, 2012)"' +DB_VERSION_FULL_STRING='"Berkeley DB 12c Release 1, library version 12.1.6.1.23: (February 17, 2015)"' # Process all options before using them. @@ -3298,6 +3378,18 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $db_cv_debug_wop" >&5 $as_echo "$db_cv_debug_wop" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if --enable-error_history option specified" >&5 +$as_echo_n "checking if --enable-error_history option specified... " >&6; } +# Check whether --enable-error_history was given. +if test "${enable_error_history+set}" = set; then : + enableval=$enable_error_history; db_cv_error_history="$enable_error_history" +else + db_cv_error_history="no" +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $db_cv_error_history" >&5 +$as_echo "$db_cv_error_history" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if --enable-diagnostic option specified" >&5 $as_echo_n "checking if --enable-diagnostic option specified... " >&6; } # Check whether --enable-diagnostic was given. @@ -3600,6 +3692,26 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $db_cv_perfmon_statistics" >&5 $as_echo "$db_cv_perfmon_statistics" >&6; } +# Application which use failchk can choose to inform all threads waiting on +# mutexes to be notified as soon as possible after a crash thread is detected. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if --enable-failchk_broadcast option specified" >&5 +$as_echo_n "checking if --enable-failchk_broadcast option specified... " >&6; } +# Check whether --enable-failchk_broadcast was given. +if test "${enable_failchk_broadcast+set}" = set; then : + enableval=$enable_failchk_broadcast; db_cv_failchk_broadcast="$enable_failchk_broadcast" +else + db_cv_failchk_broadcast="no" +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $db_cv_failchk_broadcast" >&5 +$as_echo "$db_cv_failchk_broadcast" >&6; } +if test "$db_cv_failchk_broadcast" = "yes"; then + $as_echo "#define HAVE_FAILCHK_BROADCAST 1" >>confdefs.h + + + ADDITIONAL_PROGS="$ADDITIONAL_PROGS test_failchk" +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if --enable-uimutexes option specified" >&5 $as_echo_n "checking if --enable-uimutexes option specified... " >&6; } # Check whether --enable-uimutexes was given. @@ -3649,43 +3761,6 @@ if test "$db_cv_atomicfileread" = "yes"; then fi -# Cryptography support. -# Until Berkeley DB 5.0, this was a simple yes/no decision. -# With the addition of support for Intel Integrated Performance Primitives (ipp) -# things are more complex. There are now three options: -# 1) don't build cryptography (no) -# 2) build using the built-in software implementation (yes) -# 3) build using the Intel IPP implementation (ipp) -# We handle this by making the primary configuration method: -# --with-cryptography={yes|no|ipp} -# which defaults to yes. The old enable/disable-cryptography argument is still -# supported for backwards compatibility. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if --with-cryptography option specified" >&5 -$as_echo_n "checking if --with-cryptography option specified... " >&6; } -# Check whether --enable-cryptography was given. -if test "${enable_cryptography+set}" = set; then : - enableval=$enable_cryptography; -else - enableval=$db_cv_build_full -fi - -enable_cryptography="$enableval" - -# Check whether --with-cryptography was given. -if test "${with_cryptography+set}" = set; then : - withval=$with_cryptography; -else - with_cryptography=$enable_cryptography -fi - -case "$with_cryptography" in -yes|no|ipp) ;; -*) as_fn_error $? "unknown --with-cryptography argument \'$with_cryptography\'" "$LINENO" 5 ;; -esac -db_cv_build_cryptography="$with_cryptography" -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $db_cv_build_cryptography" >&5 -$as_echo "$db_cv_build_cryptography" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if --with-mutex=MUTEX option specified" >&5 $as_echo_n "checking if --with-mutex=MUTEX option specified... " >&6; } @@ -3757,7 +3832,7 @@ $as_echo "$with_uniquename" >&6; } else db_cv_uniquename="yes" if test "$with_uniquename" = "yes"; then - DB_VERSION_UNIQUE_NAME="_5003" + DB_VERSION_UNIQUE_NAME="_6001" else DB_VERSION_UNIQUE_NAME="$with_uniquename" fi @@ -3784,6 +3859,54 @@ if test "$db_cv_jdbc" = "yes" -a "$db_cv_sql" = "no"; then db_cv_sql=$db_cv_jdbc fi +# Cryptography support. +# Until Berkeley DB 5.0, this was a simple yes/no decision. +# With the addition of support for Intel Integrated Performance Primitives (ipp) +# things are more complex. There are now three options: +# 1) don't build cryptography (no) +# 2) build using the built-in software implementation (yes) +# 3) build using the Intel IPP implementation (ipp) +# We handle this by making the primary configuration method: +# --with-cryptography={yes|no|ipp} +# which defaults to yes, unless building the SQL library(--enable-sql). +# The old enable/disable-cryptography argument is still +# supported for backwards compatibility. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if --with-cryptography option specified" >&5 +$as_echo_n "checking if --with-cryptography option specified... " >&6; } +build_cryptography="$db_cv_build_full"; +if test "$db_cv_sql" = "yes" -a "$build_cryptography" = "yes"; then + build_cryptography="no"; +fi +# Check whether --enable-cryptography was given. +if test "${enable_cryptography+set}" = set; then : + enableval=$enable_cryptography; +else + enableval=$build_cryptography +fi + +enable_cryptography="$enableval" + +# Check whether --with-cryptography was given. +if test "${with_cryptography+set}" = set; then : + withval=$with_cryptography; +else + with_cryptography=$enable_cryptography +fi + +case "$with_cryptography" in +yes|no|ipp) ;; +*) as_fn_error $? "unknown --with-cryptography argument \'$with_cryptography\'" "$LINENO" 5 ;; +esac +db_cv_build_cryptography="$with_cryptography" +if test -d "$topdir/src/crypto" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $db_cv_build_cryptography" >&5 +$as_echo "$db_cv_build_cryptography" >&6; } +else + db_cv_build_cryptography="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring --with-cryptography flag value. The NC package builds a Berkeley DB library that does not support encryption." >&5 +$as_echo "$as_me: WARNING: Ignoring --with-cryptography flag value. The NC package builds a Berkeley DB library that does not support encryption." >&2;} +fi + # Testing requires Tcl. if test "$db_cv_test" = "yes" -a "$db_cv_tcl" = "no"; then as_fn_error $? "--enable-test requires --enable-tcl" "$LINENO" 5 @@ -3841,7 +3964,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CHMOD="${ac_tool_prefix}chmod" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3881,7 +4004,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CHMOD="chmod" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3935,7 +4058,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CP="${ac_tool_prefix}cp" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3975,7 +4098,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CP="cp" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4031,7 +4154,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_KILL="${ac_tool_prefix}kill" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4071,7 +4194,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_KILL="kill" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4126,7 +4249,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_LN="${ac_tool_prefix}ln" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4166,7 +4289,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_LN="ln" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4220,7 +4343,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_MKDIR="${ac_tool_prefix}mkdir" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4260,7 +4383,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_MKDIR="mkdir" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4314,7 +4437,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_RM="${ac_tool_prefix}rm" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4354,7 +4477,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_RM="rm" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4411,7 +4534,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_MV="${ac_tool_prefix}mv" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4451,7 +4574,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_MV="mv" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4506,7 +4629,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STAP="${ac_tool_prefix}stap" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4546,7 +4669,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STAP="stap" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4604,7 +4727,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DTRACE="${ac_tool_prefix}dtrace" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4644,7 +4767,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DTRACE="dtrace" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4699,7 +4822,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_SED="${ac_tool_prefix}sed" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4739,7 +4862,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_SED="sed" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4791,7 +4914,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_PERL="${ac_tool_prefix}perl" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4831,7 +4954,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_PERL="perl" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4891,7 +5014,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_db_cv_path_sh="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4934,7 +5057,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_ac_pt_db_cv_path_sh="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -5013,7 +5136,7 @@ case $as_dir/ in #(( # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. @@ -5094,7 +5217,7 @@ optimize_flag="-O" extra_cflags="" case "$host_os" in -aix4.3.*|aix[56]*) +aix4.3.*|aix[5-9]*) case "$host_os" in aix4.3.*) CPPFLAGS="$CPPFLAGS -D_LINUX_SOURCE_COMPAT";; @@ -5149,7 +5272,6 @@ else fi CFLAGS="$CFLAGS$extra_cflags" -CXXFLAGS=${CXXFLAGS-"$CFLAGS"} # The default compiler is cc (NOT gcc), the default CFLAGS is as specified # above, NOT what is set by AC_PROG_CC, as it won't set optimization flags @@ -5178,7 +5300,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -5222,7 +5344,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -5666,8 +5788,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <stdarg.h> #include <stdio.h> -#include <sys/types.h> -#include <sys/stat.h> +struct stat; /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); @@ -5772,9 +5893,13 @@ else hpux11*) CPPFLAGS="$CPPFLAGS -mt" test "$host_cpu" = "ia64" && CFLAGS="$CFLAGS +u1";; + solaris*) CFLAGS="$CFLAGS " + CFLAGS=`echo "$CFLAGS" | sed 's/-O /-xO2 /g'`;; esac fi +CXXFLAGS=${CXXFLAGS-"$CFLAGS"} + # Check for "const" and "inline" keywords. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 @@ -5788,11 +5913,11 @@ else int main () { -/* FIXME: Include the comments suggested by Paul. */ + #ifndef __cplusplus - /* Ultrix mips cc rejects this. */ + /* Ultrix mips cc rejects this sort of thing. */ typedef int charset[2]; - const charset cs; + const charset cs = { 0, 0 }; /* SunOS 4.1.1 cc rejects this. */ char const *const *pcpcc; char **ppc; @@ -5809,8 +5934,9 @@ main () ++pcpcc; ppc = (char**) pcpcc; pcpcc = (char const *const *) ppc; - { /* SCO 3.2v4 cc rejects this. */ - char *t; + { /* SCO 3.2v4 cc rejects this sort of thing. */ + char tx; + char *t = &tx; char const *s = 0 ? (char *) 0 : (char const *) 0; *t++ = 0; @@ -5826,10 +5952,10 @@ main () iptr p = 0; ++p; } - { /* AIX XL C 1.02.0.0 rejects this saying + { /* AIX XL C 1.02.0.0 rejects this sort of thing, saying "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ - struct s { int j; const int *ap[3]; }; - struct s *b; b->j = 5; + struct s { int j; const int *ap[3]; } bx; + struct s *b = &bx; b->j = 5; } { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ const int foo = 10; @@ -5986,7 +6112,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CCC="${ac_tool_prefix}xlC_r" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -6026,7 +6152,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CCC="xlC_r" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -6080,7 +6206,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CCC="${ac_tool_prefix}aCC" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -6120,7 +6246,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CCC="aCC" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -6172,7 +6298,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CCC="${ac_tool_prefix}CC" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -6212,7 +6338,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CCC="CC" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -6264,7 +6390,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CCC="${ac_tool_prefix}cxx" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -6304,7 +6430,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CCC="cxx" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -6359,7 +6485,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CCC="${ac_tool_prefix}CC" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -6399,7 +6525,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CCC="CC" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -6464,7 +6590,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -6508,7 +6634,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CXX="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7035,7 +7161,7 @@ do for ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue + as_fn_executable_p "$ac_path_SED" || continue # Check for GNU ac_path_SED and select it if it is found. # Check for GNU $ac_path_SED case `"$ac_path_SED" --version 2>&1` in @@ -7111,7 +7237,7 @@ do for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue + as_fn_executable_p "$ac_path_GREP" || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in @@ -7177,7 +7303,7 @@ do for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue + as_fn_executable_p "$ac_path_EGREP" || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in @@ -7244,7 +7370,7 @@ do for ac_prog in fgrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue + as_fn_executable_p "$ac_path_FGREP" || continue # Check for GNU ac_path_FGREP and select it if it is found. # Check for GNU $ac_path_FGREP case `"$ac_path_FGREP" --version 2>&1` in @@ -7500,7 +7626,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7544,7 +7670,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7963,7 +8089,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -8003,7 +8129,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OBJDUMP="objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -8309,7 +8435,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -8349,7 +8475,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DLLTOOL="dlltool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -8452,7 +8578,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AR="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -8496,7 +8622,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AR="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -8621,7 +8747,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -8661,7 +8787,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -8720,7 +8846,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -8760,7 +8886,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_RANLIB="ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -8864,7 +8990,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -9437,7 +9563,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -9477,7 +9603,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -9557,7 +9683,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -9597,7 +9723,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -9649,7 +9775,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -9689,7 +9815,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_NMEDIT="nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -9741,7 +9867,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_LIPO="${ac_tool_prefix}lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -9781,7 +9907,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_LIPO="lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -9833,7 +9959,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OTOOL="${ac_tool_prefix}otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -9873,7 +9999,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OTOOL="otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -9925,7 +10051,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -9965,7 +10091,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OTOOL64="otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -17805,7 +17931,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_JAVAC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -17848,7 +17974,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_JAVAC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -17885,7 +18011,7 @@ else JAVA_TEST=Test.java CLASS_TEST=Test.class cat << \EOF > $JAVA_TEST -/* #line 17888 "configure" */ +/* #line 18014 "configure" */ public class Test { } EOF @@ -17928,7 +18054,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_JAR="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -17971,7 +18097,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_JAR="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -18019,7 +18145,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_JAVA="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -18062,7 +18188,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_JAVA="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -18106,7 +18232,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_uudecode="yes" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -18148,7 +18274,7 @@ EOF if uudecode$EXEEXT Test.uue; then ac_cv_prog_uudecode_base64=yes else - echo "configure: 18151: uudecode had trouble decoding base 64 file 'Test.uue'" >&5 + echo "configure: 18277: uudecode had trouble decoding base 64 file 'Test.uue'" >&5 echo "configure: failed file was:" >&5 cat Test.uue >&5 ac_cv_prog_uudecode_base64=no @@ -18186,7 +18312,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_JAVAC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -18229,7 +18355,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_JAVAC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -18266,7 +18392,7 @@ else JAVA_TEST=Test.java CLASS_TEST=Test.class cat << \EOF > $JAVA_TEST -/* #line 18269 "configure" */ +/* #line 18395 "configure" */ public class Test { } EOF @@ -18301,7 +18427,7 @@ JAVA_TEST=Test.java CLASS_TEST=Test.class TEST=Test cat << \EOF > $JAVA_TEST -/* [#]line 18304 "configure" */ +/* [#]line 18430 "configure" */ public class Test { public static void main (String args[]) { System.exit (0); @@ -18364,7 +18490,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path__ACJNI_JAVAC="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -18555,7 +18681,10 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_main" >&5 $as_echo "$ac_cv_lib_dl_main" >&6; } if test "x$ac_cv_lib_dl_main" = xyes; then : - SQL_LIBS="$SQL_LIBS -ldl" + + SQL_LIBS="$SQL_LIBS -ldl" + LIBSQLSO_LIBS=" -ldl" + fi ac_cv_lib_dl=ac_cv_lib_dl_main @@ -20239,6 +20368,67 @@ else as_fn_error $? "No off_t type." "$LINENO" 5 fi +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of off_t" >&5 +$as_echo_n "checking size of off_t... " >&6; } +if ${ac_cv_sizeof_off_t+:} false; then : + $as_echo_n "(cached) " >&6 +else + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (off_t))" "ac_cv_sizeof_off_t" "$db_includes +"; then : + +else + if test "$ac_cv_type_off_t" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (off_t) +See \`config.log' for more details" "$LINENO" 5; } + else + ac_cv_sizeof_off_t=0 + fi +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_off_t" >&5 +$as_echo "$ac_cv_sizeof_off_t" >&6; } + + + +cat >>confdefs.h <<_ACEOF +#define SIZEOF_OFF_T $ac_cv_sizeof_off_t +_ACEOF + + + +# db_off_t should be set to a signed integer type that is the same +# size as off_t + +ac_fn_c_check_type "$LINENO" "db_off_t" "ac_cv_type_db_off_t" "$ac_includes_default" +if test "x$ac_cv_type_db_off_t" = xyes; then : + +else + + case "$ac_cv_sizeof_off_t" in + "$ac_cv_sizeof_int") + db_off_t_decl="typedef int db_off_t;";; + "$ac_cv_sizeof_char") + db_off_t_decl="typedef char db_off_t;";; + "$ac_cv_sizeof_short") + db_off_t_decl="typedef short db_off_t;";; + "$ac_cv_sizeof_long") + db_off_t_decl="typedef long db_off_t;";; + "$ac_cv_sizeof_long_long") + db_off_t_decl="typedef long long db_off_t;";; + *) + if test "" != "notfatal"; then + as_fn_error $? "No signed $ac_cv_sizeof_off_t-byte integral type" "$LINENO" 5 + fi;; + esac +fi + ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$db_includes " @@ -20582,7 +20772,7 @@ main () pthread_mutex_t mutex; pthread_condattr_t condattr; pthread_mutexattr_t mutexattr; - exit ( + return ( pthread_condattr_init(&condattr) || pthread_condattr_setpshared(&condattr, PTHREAD_PROCESS_SHARED) || pthread_mutexattr_init(&mutexattr) || @@ -20611,12 +20801,12 @@ else #include <stdlib.h> #include <pthread.h> -main() { +int main() { pthread_cond_t cond; pthread_mutex_t mutex; pthread_condattr_t condattr; pthread_mutexattr_t mutexattr; - exit ( + return ( pthread_condattr_init(&condattr) || pthread_condattr_setpshared(&condattr, PTHREAD_PROCESS_SHARED) || pthread_mutexattr_init(&mutexattr) || @@ -20651,7 +20841,7 @@ main () pthread_cond_t cond; pthread_condattr_t condattr; - exit(pthread_condattr_init(&condattr) || + return (pthread_condattr_init(&condattr) || pthread_cond_init(&cond, &condattr)); ; @@ -20671,10 +20861,10 @@ else #include <stdlib.h> #include <pthread.h> -main() { +int main() { pthread_cond_t cond; pthread_condattr_t condattr; - exit(pthread_condattr_init(&condattr) || + return (pthread_condattr_init(&condattr) || pthread_cond_init(&cond, &condattr) || pthread_cond_init(&cond, &condattr)); } @@ -20701,7 +20891,7 @@ main () pthread_rwlock_t rwlock; pthread_rwlockattr_t rwlockattr; - exit(pthread_rwlockattr_init(&rwlockattr) || + exit (pthread_rwlockattr_init(&rwlockattr) || pthread_rwlock_init(&rwlock, &rwlockattr)); ; @@ -20721,10 +20911,10 @@ else #include <stdlib.h> #include <pthread.h> -main() { +int main() { pthread_rwlock_t rwlock; pthread_rwlockattr_t rwlockattr; - exit(pthread_rwlockattr_init(&rwlockattr) || + return (pthread_rwlockattr_init(&rwlockattr) || pthread_rwlock_init(&rwlock, &rwlockattr) || pthread_rwlock_init(&rwlock, &rwlockattr)); } @@ -20756,7 +20946,7 @@ main () pthread_mutex_t mutex; pthread_condattr_t condattr; pthread_mutexattr_t mutexattr; - exit ( + return ( pthread_condattr_init(&condattr) || pthread_condattr_setpshared(&condattr, PTHREAD_PROCESS_SHARED) || pthread_mutexattr_init(&mutexattr) || @@ -20785,12 +20975,12 @@ else #include <stdlib.h> #include <pthread.h> -main() { +int main() { pthread_cond_t cond; pthread_mutex_t mutex; pthread_condattr_t condattr; pthread_mutexattr_t mutexattr; - exit ( + return ( pthread_condattr_init(&condattr) || pthread_condattr_setpshared(&condattr, PTHREAD_PROCESS_SHARED) || pthread_mutexattr_init(&mutexattr) || @@ -20825,7 +21015,7 @@ main () pthread_cond_t cond; pthread_condattr_t condattr; - exit(pthread_condattr_init(&condattr) || + return (pthread_condattr_init(&condattr) || pthread_cond_init(&cond, &condattr)); ; @@ -20845,10 +21035,10 @@ else #include <stdlib.h> #include <pthread.h> -main() { +int main() { pthread_cond_t cond; pthread_condattr_t condattr; - exit(pthread_condattr_init(&condattr) || + return (pthread_condattr_init(&condattr) || pthread_cond_init(&cond, &condattr) || pthread_cond_init(&cond, &condattr)); } @@ -20875,7 +21065,7 @@ main () pthread_rwlock_t rwlock; pthread_rwlockattr_t rwlockattr; - exit(pthread_rwlockattr_init(&rwlockattr) || + exit (pthread_rwlockattr_init(&rwlockattr) || pthread_rwlock_init(&rwlock, &rwlockattr)); ; @@ -20895,10 +21085,10 @@ else #include <stdlib.h> #include <pthread.h> -main() { +int main() { pthread_rwlock_t rwlock; pthread_rwlockattr_t rwlockattr; - exit(pthread_rwlockattr_init(&rwlockattr) || + return (pthread_rwlockattr_init(&rwlockattr) || pthread_rwlock_init(&rwlock, &rwlockattr) || pthread_rwlock_init(&rwlock, &rwlockattr)); } @@ -20933,7 +21123,7 @@ main () pthread_mutex_t mutex; pthread_condattr_t condattr; pthread_mutexattr_t mutexattr; - exit ( + return ( pthread_condattr_init(&condattr) || pthread_mutexattr_init(&mutexattr) || pthread_cond_init(&cond, &condattr) || @@ -20960,12 +21150,12 @@ else #include <stdlib.h> #include <pthread.h> -main() { +int main() { pthread_cond_t cond; pthread_mutex_t mutex; pthread_condattr_t condattr; pthread_mutexattr_t mutexattr; - exit ( + return ( pthread_condattr_init(&condattr) || pthread_mutexattr_init(&mutexattr) || pthread_cond_init(&cond, &condattr) || @@ -20998,7 +21188,7 @@ main () pthread_cond_t cond; pthread_condattr_t condattr; - exit(pthread_condattr_init(&condattr) || + return (pthread_condattr_init(&condattr) || pthread_cond_init(&cond, &condattr)); ; @@ -21018,10 +21208,10 @@ else #include <stdlib.h> #include <pthread.h> -main() { +int main() { pthread_cond_t cond; pthread_condattr_t condattr; - exit(pthread_condattr_init(&condattr) || + return (pthread_condattr_init(&condattr) || pthread_cond_init(&cond, &condattr) || pthread_cond_init(&cond, &condattr)); } @@ -21048,7 +21238,7 @@ main () pthread_rwlock_t rwlock; pthread_rwlockattr_t rwlockattr; - exit(pthread_rwlockattr_init(&rwlockattr) || + exit (pthread_rwlockattr_init(&rwlockattr) || pthread_rwlock_init(&rwlock, &rwlockattr)); ; @@ -21068,10 +21258,10 @@ else #include <stdlib.h> #include <pthread.h> -main() { +int main() { pthread_rwlock_t rwlock; pthread_rwlockattr_t rwlockattr; - exit(pthread_rwlockattr_init(&rwlockattr) || + return (pthread_rwlockattr_init(&rwlockattr) || pthread_rwlock_init(&rwlock, &rwlockattr) || pthread_rwlock_init(&rwlock, &rwlockattr)); } @@ -21103,7 +21293,7 @@ main () pthread_mutex_t mutex; pthread_condattr_t condattr; pthread_mutexattr_t mutexattr; - exit ( + return ( pthread_condattr_init(&condattr) || pthread_mutexattr_init(&mutexattr) || pthread_cond_init(&cond, &condattr) || @@ -21130,12 +21320,12 @@ else #include <stdlib.h> #include <pthread.h> -main() { +int main() { pthread_cond_t cond; pthread_mutex_t mutex; pthread_condattr_t condattr; pthread_mutexattr_t mutexattr; - exit ( + return ( pthread_condattr_init(&condattr) || pthread_mutexattr_init(&mutexattr) || pthread_cond_init(&cond, &condattr) || @@ -21168,7 +21358,7 @@ main () pthread_cond_t cond; pthread_condattr_t condattr; - exit(pthread_condattr_init(&condattr) || + return (pthread_condattr_init(&condattr) || pthread_cond_init(&cond, &condattr)); ; @@ -21188,10 +21378,10 @@ else #include <stdlib.h> #include <pthread.h> -main() { +int main() { pthread_cond_t cond; pthread_condattr_t condattr; - exit(pthread_condattr_init(&condattr) || + return (pthread_condattr_init(&condattr) || pthread_cond_init(&cond, &condattr) || pthread_cond_init(&cond, &condattr)); } @@ -21218,7 +21408,7 @@ main () pthread_rwlock_t rwlock; pthread_rwlockattr_t rwlockattr; - exit(pthread_rwlockattr_init(&rwlockattr) || + exit (pthread_rwlockattr_init(&rwlockattr) || pthread_rwlock_init(&rwlock, &rwlockattr)); ; @@ -21238,10 +21428,10 @@ else #include <stdlib.h> #include <pthread.h> -main() { +int main() { pthread_rwlock_t rwlock; pthread_rwlockattr_t rwlockattr; - exit(pthread_rwlockattr_init(&rwlockattr) || + return (pthread_rwlockattr_init(&rwlockattr) || pthread_rwlock_init(&rwlock, &rwlockattr) || pthread_rwlock_init(&rwlock, &rwlockattr)); } @@ -21370,7 +21560,7 @@ main () { #if (defined(i386) || defined(__i386__)) && defined(__GNUC__) - exit(0); + return (0); #else FAIL TO COMPILE/LINK #endif @@ -21393,7 +21583,7 @@ main () { #if (defined(x86_64) || defined(__x86_64__)) && defined(__GNUC__) - exit(0); + return (0); #else FAIL TO COMPILE/LINK #endif @@ -21445,7 +21635,7 @@ main () #if defined(__sparc__) && defined(__GNUC__) asm volatile ("membar #StoreStore|#StoreLoad|#LoadStore"); - exit(0); + return (0); #else FAIL TO COMPILE/LINK #endif @@ -21516,7 +21706,7 @@ main () msem_init(&x, 0); msem_lock(&x, 0); msem_unlock(&x, 0); - exit(0); + return (0); #else FAIL TO COMPILE/LINK #endif @@ -21548,7 +21738,7 @@ main () msem_init(&x, 0); msem_lock(&x, 0); msem_unlock(&x, 0); - exit(0); + return (0); ; return 0; @@ -21600,7 +21790,7 @@ main () { #if defined(__USLC__) - exit(0); + return (0); #else FAIL TO COMPILE/LINK #endif @@ -21731,7 +21921,7 @@ main () { #if defined(__alpha) && defined(__DECC) - exit(0); + return (0); #else FAIL TO COMPILE/LINK #endif @@ -21756,7 +21946,7 @@ main () { #if defined(__alpha) && defined(__GNUC__) - exit(0); + return (0); #else FAIL TO COMPILE/LINK #endif @@ -21781,7 +21971,7 @@ main () { #if defined(__arm__) && defined(__GNUC__) - exit(0); + return (0); #else FAIL TO COMPILE/LINK #endif @@ -21806,7 +21996,7 @@ main () { #if (defined(__mips) || defined(__mips__)) && defined(__GNUC__) - exit(0); + return (0); #else FAIL TO COMPILE/LINK #endif @@ -21831,7 +22021,7 @@ main () { #if (defined(__hppa) || defined(__hppa__)) && defined(__GNUC__) - exit(0); + return (0); #else FAIL TO COMPILE/LINK #endif @@ -21856,7 +22046,7 @@ main () { #if (defined(__powerpc__) || defined(__ppc__)) && defined(__GNUC__) - exit(0); + return (0); #else FAIL TO COMPILE/LINK #endif @@ -21881,7 +22071,7 @@ main () { #if (defined(mc68020) || defined(sun3)) && defined(__GNUC__) - exit(0); + return (0); #else FAIL TO COMPILE/LINK #endif @@ -21906,7 +22096,7 @@ main () { #if defined(__MVS__) && defined(__IBMC__) - exit(0); + return (0); #else FAIL TO COMPILE/LINK #endif @@ -21931,7 +22121,7 @@ main () { #if defined(__s390__) && defined(__GNUC__) - exit(0); + return (0); #else FAIL TO COMPILE/LINK #endif @@ -21956,7 +22146,7 @@ main () { #if defined(__ia64) && defined(__GNUC__) - exit(0); + return (0); #else FAIL TO COMPILE/LINK #endif @@ -21981,7 +22171,7 @@ main () { #if defined(_UTS) - exit(0); + return (0); #else FAIL TO COMPILE/LINK #endif @@ -22464,9 +22654,9 @@ main () { #if ((defined(i386) || defined(__i386__)) && defined(__GNUC__)) - exit(0); + return (0); #elif ((defined(x86_64) || defined(__x86_64__)) && defined(__GNUC__)) - exit(0); + return (0); #else FAIL TO COMPILE/LINK #endif @@ -23220,19 +23410,6 @@ esac fi -ac_fn_c_check_func "$LINENO" "strcasecmp" "ac_cv_func_strcasecmp" -if test "x$ac_cv_func_strcasecmp" = xyes; then : - $as_echo "#define HAVE_STRCASECMP 1" >>confdefs.h - -else - case " $LIBOBJS " in - *" strcasecmp.$ac_objext "* ) ;; - *) LIBOBJS="$LIBOBJS strcasecmp.$ac_objext" - ;; -esac - -fi - ac_fn_c_check_func "$LINENO" "strcat" "ac_cv_func_strcat" if test "x$ac_cv_func_strcat" = xyes; then : $as_echo "#define HAVE_STRCAT 1" >>confdefs.h @@ -23365,6 +23542,20 @@ fi +ac_fn_c_check_decl "$LINENO" "strcasecmp" "ac_cv_have_decl_strcasecmp" "$ac_includes_default" +if test "x$ac_cv_have_decl_strcasecmp" = xyes; then : + $as_echo "#define HAVE_STRCASECMP 1" >>confdefs.h + +else + case " $LIBOBJS " in + *" strcasecmp.$ac_objext "* ) ;; + *) LIBOBJS="$LIBOBJS strcasecmp.$ac_objext" + ;; +esac + +fi + + # Check for system functions we optionally use. for ac_func in \ _fstati64 backtrace backtrace_symbols directio fchmod fclose\ @@ -23384,9 +23575,68 @@ fi done +# The random_r/initstate_r/srandom_r functions in AIX and OSF/1 (Tru64) have +# atypical function signatures. Disable BerkeleyDB's use of those functions. +case "$host_os" in +aix*|osf*) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: random_r is ignored on $host_os." >&5 +$as_echo "$as_me: WARNING: random_r is ignored on $host_os." >&2;};; +*) + for ac_func in initstate_r random_r srandom_r +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done +;; +esac + +if test "$db_cv_error_history" = "yes"; then + # Check for pthread thread local storage support + for ac_func in pthread_getspecific pthread_setspecific +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + for ac_func in pthread_key_create pthread_once +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + if test "x$ac_cv_func_pthread_getspecific" = "xyes" -a \ + "x$ac_cv_func_pthread_setspecific" = "xyes" -a \ + "x$ac_cv_func_pthread_key_create" = "xyes" -a \ + "x$ac_cv_func_pthread_once" = "xyes"; then + $as_echo "#define HAVE_ERROR_HISTORY 1" >>confdefs.h + + else + as_fn_error $? "--enable-error_history requires pthread thread local storage" "$LINENO" 5 + fi + +fi + -for ac_func in gettimeofday localtime time strftime +for ac_func in gettimeofday localtime localtime_r time strftime do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" @@ -23432,6 +23682,7 @@ if test "$cross_compiling" = yes; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ +#include <time.h> #include <sys/time.h> int main () @@ -23455,8 +23706,9 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ +#include <time.h> #include <sys/time.h> -main() { +int main() { struct timespec t; return (clock_gettime(CLOCK_MONOTONIC, &t) != 0); } @@ -23908,6 +24160,8 @@ _ACEOF esac rm -rf conftest* fi + + fi @@ -24192,6 +24446,8 @@ $as_echo_n "checking for 64-bit integral type support for sequences... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ + #include <stdio.h> + #include <string.h> int main () { @@ -24226,7 +24482,9 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - main() { + #include <stdio.h> + #include <string.h> + int main() { $db_cv_seq_type l; unsigned $db_cv_seq_type u; char buf[100]; @@ -24302,8 +24560,10 @@ else /* Not all these includes are needed, but the minimal set varies from * system to system. */ + #include <stdlib.h> #include <stdio.h> #include <string.h> + #include <unistd.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> @@ -24315,18 +24575,25 @@ else #ifndef MAP_FAILED #define MAP_FAILED (-1) #endif + /* Prevent unused variabl warnings by setting and using it. */ + #define COMPQUIET(n, v) do { \ + (n) = (v); \ + (n) = (n); \ + } while (0) - int catch_sig(sig) + + void catch_sig(sig) int sig; { + COMPQUIET(sig,0); exit(1); } - main() { + int main() { const char *underlying; unsigned gapsize; char *base; - int count, fd, i, mode, open_flags, ret, total_size; + int count, fd, i, mode, open_flags, total_size; char buf[TEST_MMAP_BUFSIZE]; gapsize = 1024; @@ -25145,16 +25412,16 @@ if (echo >conf$$.file) 2>/dev/null; then # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. + # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -p' + as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null @@ -25214,28 +25481,16 @@ else as_mkdir_p=false fi -if test -x / >/dev/null 2>&1; then - as_test_x='test -x' -else - if ls -dL / >/dev/null 2>&1; then - as_ls_L_option=L - else - as_ls_L_option= - fi - as_test_x=' - eval sh -c '\'' - if test -d "$1"; then - test -d "$1/."; - else - case $1 in #( - -*)set "./$1";; - esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( - ???[sx]*):;;*)false;;esac;fi - '\'' sh - ' -fi -as_executable_p=$as_test_x + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p +as_test_x='test -x' +as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" @@ -25256,8 +25511,8 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Berkeley DB $as_me 5.3.21, which was -generated by GNU Autoconf 2.68. Invocation command line was +This file was extended by Berkeley DB $as_me 6.1.23, which was +generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -25322,11 +25577,11 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -Berkeley DB config.status 5.3.21 -configured by $0, generated by GNU Autoconf 2.68, +Berkeley DB config.status 6.1.23 +configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" -Copyright (C) 2010 Free Software Foundation, Inc. +Copyright (C) 2012 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." @@ -25416,7 +25671,7 @@ fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then - set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' @@ -27322,7 +27577,12 @@ esac # !!! END COPIED from autoconf distribution sqlite_dir=$srcdir/../lang/sql/sqlite -(cd sql && eval "\$SHELL ../$sqlite_dir/configure --disable-option-checking $ac_sub_configure_args CPPFLAGS=\"-I.. $CPPFLAGS\" --enable-amalgamation=$db_cv_sql_amalgamation --enable-readline=$with_readline" && cat build_config.h >> config.h) || exit 1 +orig_CPPFLAGS="$CPPFLAGS" +jdbc_variables="" +if test "$db_cv_build_cryptography" = "yes"; then + CPPFLAGS="$CPPFLAGS -DSQLITE_HAS_CODEC=1" +fi +(cd sql && eval "\$SHELL ../$sqlite_dir/configure --disable-option-checking $ac_sub_configure_args CPPFLAGS=\"-I.. $CPPFLAGS\" --enable-amalgamation=$db_cv_sql_amalgamation --enable-readline=$with_readline " && cat build_config.h >> config.h) || exit 1 # Configure JDBC if --enable-jdbc if test "$db_cv_jdbc" != "no"; then @@ -27352,7 +27612,6 @@ if test "$db_cv_jdbc" != "no"; then test "$prefix" != "" && jdbc_args="--prefix=$prefix --with-jardir=$prefix/jar" test "$enable_shared" != "" && jdbc_args="$jdbc_args --enable-shared=$enable_shared" test "$enable_static" != "" && jdbc_args="$jdbc_args --enable-static=$enable_static" - test "$cross_compiling" = "yes" && jdbc_args="$jdbc_args --build=$build --host=$host " # 1. The build directory is build_unix/jdbc, so the include paths are relative # to that. @@ -27363,6 +27622,7 @@ if test "$db_cv_jdbc" != "no"; then $CFLAGS $CPPFLAGS\"" # Set LDFLAGS for JDBC driver test "$LDFLAGS" != "" && jdbc_flags="$jdbc_flags LDFLAGS=\"$LDFLAGS\"" + test "$db_cv_build_cryptography" = "yes" && jdbc_flags="$jdbc_flags HAVE_SQLITE3_KEY=1" # Copy ../lang/sql/jdbc to build_unix/ test ! -d jdbc && cp -r $jdbc_dir . @@ -27378,4 +27638,6 @@ if test "$db_cv_jdbc" != "no"; then eval "\$SHELL ./configure --with-sqlite3=../../lang/sql/generated $jdbc_args $jdbc_flags" fi +CPPFLAGS="$orig_CPPFLAGS" + fi diff --git a/dist/configure.ac b/dist/configure.ac index b1e49a3f..74cb5378 100644 --- a/dist/configure.ac +++ b/dist/configure.ac @@ -70,6 +70,7 @@ AC_SUBST(LIBTSO_LIBS) AC_SUBST(LIBTSO_MODSUFFIX) AC_SUBST(LIBTSO_MODULE) AC_SUBST(LIBXSO_LIBS) +AC_SUBST(LIBSQLSO_LIBS) AC_SUBST(MAKEFILE_CC) AC_SUBST(MAKEFILE_CCLINK) AC_SUBST(MAKEFILE_CXX) @@ -178,7 +179,7 @@ optimize_flag="-O" extra_cflags="" case "$host_os" in -aix4.3.*|aix[[56]]*) +aix4.3.*|aix[[5-9]]*) case "$host_os" in aix4.3.*) CPPFLAGS="$CPPFLAGS -D_LINUX_SOURCE_COMPAT";; @@ -231,7 +232,6 @@ else fi CFLAGS="$CFLAGS$extra_cflags" -CXXFLAGS=${CXXFLAGS-"$CFLAGS"} # The default compiler is cc (NOT gcc), the default CFLAGS is as specified # above, NOT what is set by AC_PROG_CC, as it won't set optimization flags @@ -257,9 +257,13 @@ else hpux11*) CPPFLAGS="$CPPFLAGS -mt" test "$host_cpu" = "ia64" && CFLAGS="$CFLAGS +u1";; + solaris*) CFLAGS="$CFLAGS " + CFLAGS=`echo "$CFLAGS" | sed 's/-O /-xO2 /g'`;; esac fi +CXXFLAGS=${CXXFLAGS-"$CFLAGS"} + # Check for "const" and "inline" keywords. AC_C_CONST AC_C_INLINE @@ -500,7 +504,10 @@ if test "$db_cv_sql" = "yes"; then # Link against libdl, if found. It is only needed for the load # extension, but shouldn't hurt. - AC_HAVE_LIBRARY(dl, SQL_LIBS="$SQL_LIBS -ldl") + AC_HAVE_LIBRARY(dl, [ + SQL_LIBS="$SQL_LIBS -ldl" + LIBSQLSO_LIBS=" -ldl" + ]) # Link against libedit or readline for command-line editing. if test x"$with_readline" != xno; then @@ -691,9 +698,12 @@ AC_HAVE_LIBRARY(socket, TEST_LIBS="$TEST_LIBS -lsocket") # deleted getwd(). AC_REPLACE_FUNCS(\ abort atoi atol bsearch getcwd getenv getopt isalpha isdigit isprint\ - isspace memcmp memcpy memmove printf qsort raise rand strcasecmp\ + isspace memcmp memcpy memmove printf qsort raise rand\ strcat strchr strdup strerror strncat strncmp strrchr strsep\ strtol strtoul) +AH_TEMPLATE(HAVE_STRCASECMP, + [Define to 1 if you have the strcasecmp symbol.]) +AC_CHECK_DECL(strcasecmp, [AC_DEFINE(HAVE_STRCASECMP)], [AC_LIBOBJ(strcasecmp)]) # Check for system functions we optionally use. AC_CHECK_FUNCS(\ @@ -703,6 +713,31 @@ AC_CHECK_FUNCS(\ pthread_self pthread_yield random sched_yield select setgid setuid\ sigaction snprintf stat sysconf vsnprintf yield) +# The random_r/initstate_r/srandom_r functions in AIX and OSF/1 (Tru64) have +# atypical function signatures. Disable BerkeleyDB's use of those functions. +case "$host_os" in +aix*|osf*) + AC_MSG_WARN([random_r is ignored on $host_os.]);; +*) + AC_CHECK_FUNCS(initstate_r random_r srandom_r);; +esac + +if test "$db_cv_error_history" = "yes"; then + # Check for pthread thread local storage support + AC_CHECK_FUNCS(pthread_getspecific pthread_setspecific) + AC_CHECK_FUNCS(pthread_key_create pthread_once) + if test "x$ac_cv_func_pthread_getspecific" = "xyes" -a \ + "x$ac_cv_func_pthread_setspecific" = "xyes" -a \ + "x$ac_cv_func_pthread_key_create" = "xyes" -a \ + "x$ac_cv_func_pthread_once" = "xyes"; then + AC_DEFINE(HAVE_ERROR_HISTORY) + else + AC_MSG_ERROR([--enable-error_history requires pthread thread local storage]) + fi + AH_TEMPLATE(HAVE_ERROR_HISTORY, + [Define to 1 if you want a version that records extra information about errors.]) +fi + AC_TIMERS # Ftruncate. diff --git a/dist/db_provider.d b/dist/db_provider.d index 06e966ce..1acc460c 100644 --- a/dist/db_provider.d +++ b/dist/db_provider.d @@ -24,7 +24,7 @@ provider bdb { * alphabetically. For instance allocation and free events are adjacent. * New, unrelated events are placed at the end of their event class. * - * Copyright (c) 2011, 2012 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2011, 2015 Oracle and/or its affiliates. All rights reserved. * */ diff --git a/dist/events.in b/dist/events.in index 49436a72..f6e28f77 100644 --- a/dist/events.in +++ b/dist/events.in @@ -16,7 +16,7 @@ # alphabetically. For instance allocation and free events are adjacent. # New, unrelated events are placed at the end of their event class. # -# Copyright (c) 2011, 2012 Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2011, 2015 Oracle and/or its affiliates. All rights reserved. # # The alloc class covers the allocation of "on disk" database pages. diff --git a/dist/gen_msg.awk b/dist/gen_msg.awk index 72820995..182e3e49 100644 --- a/dist/gen_msg.awk +++ b/dist/gen_msg.awk @@ -1,7 +1,7 @@ # # See the file LICENSE for redistribution information. # -# Copyright (c) 1996, 2012 Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1996, 2015 Oracle and/or its affiliates. All rights reserved. # # $Id$ # @@ -120,7 +120,7 @@ END { # function type_length(type) { - if (type == "DB_LSN") + if (type == "DB_LSN" || type == "u_int64_t") return (8); if (type == "DBT" || type == "u_int32_t" || type == "db_pgno_t") return (4); @@ -257,6 +257,17 @@ function emit_marshal() vars[i], vars[i]) >> CFILE; printf("\t\tbp += argp->%s.size;\n", vars[i]) >> CFILE; printf("\t}\n") >> CFILE; + } else if (types[i] == "u_int64_t") { + if (version) { + printf("\tif (copy_only) {\n") >> CFILE; + printf(\ + "\t\tmemcpy(bp, &argp->%s, sizeof(u_int64_t));\n", vars[i]) >> CFILE; + printf(\ + "\t\tbp += sizeof(u_int64_t);\n") >> CFILE; + printf("\t} else\n\t") >> CFILE; + } + printf("\tDB_HTONLL_COPYOUT(env, bp, argp->%s);\n", \ + vars[i]) >> CFILE; } else { printf("unknown field type: %s", types[i]); exit(1); @@ -413,6 +424,17 @@ function emit_unmarshal() printf("\tif (max < needed)\n") >> CFILE; printf("\t\tgoto too_few;\n") >> CFILE; printf("\tbp += argp->%s.size;\n", vars[i]) >> CFILE; + } else if (types[i] == "u_int64_t") { + if (version) { + printf("\tif (copy_only) {\n") >> CFILE; + printf(\ + "\t\tmemcpy(&argp->%s, bp, sizeof(u_int64_t));\n", vars[i]) >> CFILE; + printf(\ + "\t\tbp += sizeof(u_int64_t);\n") >> CFILE; + printf("\t} else\n\t") >> CFILE; + } + printf("\tDB_NTOHLL_COPYIN(env, argp->%s, bp);\n", \ + vars[i]) >> CFILE; } else { printf("unknown field type: %s", types[i]); exit(1); diff --git a/dist/gen_rec.awk b/dist/gen_rec.awk index 129c978f..006ddf56 100644 --- a/dist/gen_rec.awk +++ b/dist/gen_rec.awk @@ -2,7 +2,7 @@ # # See the file LICENSE for redistribution information. # -# Copyright (c) 1996, 2012 Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1996, 2015 Oracle and/or its affiliates. All rights reserved. # # $Id$ # @@ -178,7 +178,9 @@ BEGIN { make_name(thisfunc, thisfunc, version); } -/^[ ]*(DB|ARG|DBOP|DBT|DATA|HDR|LOCKS|OP|PGDBT|PGDDBT|PGLIST|POINTER|TIME)/ { +# Some versions of awk do not understand splitting a pattern into several lines +# with '\', so this > 80 character pattern needs to remain a single line. +/^[ ]*(DB|ARG|DBOP|DBT|DATA|HDR|LOCKS|OP|PGDBT|PGDDBT|PGLIST|POINTER|TIME|LONGARG)/ { vars[nvars] = $2; types[nvars] = $3; modes[nvars] = $1; @@ -202,6 +204,8 @@ BEGIN { sizes[nvars] = sprintf("sizeof(u_int32_t)"); if ($3 != "u_int32_t") is_uint = 1; + } else if ($1 == "LONGARG") { + sizes[nvars] = sprintf("sizeof(u_int64_t)"); } else if ($1 == "POINTER") sizes[nvars] = sprintf("sizeof(*%s)", $2); else { # DBT, PGDBT, PGDDBT diff --git a/dist/jdbc/jdbc.patch b/dist/jdbc/jdbc.patch new file mode 100644 index 00000000..9519669e --- /dev/null +++ b/dist/jdbc/jdbc.patch @@ -0,0 +1,36 @@ +diff -r e7e24e781211 configure +--- a/configure Wed Jan 09 13:03:42 2013 -0800 ++++ b/configure Tue Jan 22 18:41:16 2013 +0800 +@@ -11420,9 +11420,14 @@ + return ret; + } + ++static int vatest2(va_list ap) { ++ return 0; ++} ++ + int + main(int argc, char **argv) + { ++ vatest2((va_list)argv); /* Check whether we can convert "char *" to va_list */ + exit(vatest(NULL, vatest, 0.0, 0, NULL)); + } + +diff -r e7e24e781211 configure.in +--- a/configure.in Wed Jan 09 13:03:42 2013 -0800 ++++ b/configure.in Tue Jan 22 18:41:16 2013 +0800 +@@ -436,9 +436,14 @@ + return ret; + } + ++static int vatest2(va_list ap) { ++ return 0; ++} ++ + int + main(int argc, char **argv) + { ++ vatest2((va_list)argv); /* Check whether we can convert "char *" to va_list */ + exit(vatest(NULL, vatest, 0.0, 0, NULL)); + } + ],[USE_VFUNCS=1],[USE_VFUNCS=0],[USE_VFUNCS=0]) diff --git a/dist/jdbc/jdbc.patch2 b/dist/jdbc/jdbc.patch2 new file mode 100644 index 00000000..e330896b --- /dev/null +++ b/dist/jdbc/jdbc.patch2 @@ -0,0 +1,124 @@ +diff -r 4ce6bb090c10 configure +--- a/configure Tue Feb 19 11:51:39 2013 -0500 ++++ b/configure Wed Feb 20 12:03:37 2013 +0800 +@@ -10205,6 +10205,29 @@ + + + ++HAVE_SQLITE3_MALLOC=0 ++HAVE_SQLITE3_PREPARE_V2=0 ++HAVE_SQLITE3_PREPARE16_V2=0 ++HAVE_SQLITE3_BIND_ZEROBLOB=0 ++HAVE_SQLITE3_CLEAR_BINDINGS=0 ++HAVE_SQLITE3_COLUMN_TABLE_NAME16=0 ++HAVE_SQLITE3_COLUMN_DATABASE_NAME16=0 ++HAVE_SQLITE3_COLUMN_ORIGIN_NAME16=0 ++HAVE_SQLITE3_BIND_PARAMETER_COUNT=0 ++HAVE_SQLITE3_BIND_PARAMETER_NAME=0 ++HAVE_SQLITE3_BIND_PARAMETER_INDEX=0 ++HAVE_SQLITE3_RESULT_ZEROBLOB=0 ++HAVE_SQLITE3_INCRBLOBIO=0 ++HAVE_SQLITE3_KEY="${HAVE_SQLITE3_KEY:-0}" ++HAVE_SQLITE3_SHARED_CACHE=0 ++HAVE_SQLITE3_OPEN_V2=0 ++HAVE_SQLITE3_LOAD_EXTENSION=0 ++HAVE_SQLITE3_BACKUPAPI=0 ++HAVE_SQLITE3_PROFILE=0 ++HAVE_SQLITE3_STATUS=0 ++HAVE_SQLITE3_DB_STATUS=0 ++HAVE_SQLITE3_STMT_STATUS=0 ++ + ########## + # Find SQLite3 header file and library + # +@@ -10327,28 +10350,6 @@ + fi + + test "x$enable_load_extension" = "xyes" || enable_load_extension=no +-HAVE_SQLITE3_MALLOC=0 +-HAVE_SQLITE3_PREPARE_V2=0 +-HAVE_SQLITE3_PREPARE16_V2=0 +-HAVE_SQLITE3_BIND_ZEROBLOB=0 +-HAVE_SQLITE3_CLEAR_BINDINGS=0 +-HAVE_SQLITE3_COLUMN_TABLE_NAME16=0 +-HAVE_SQLITE3_COLUMN_DATABASE_NAME16=0 +-HAVE_SQLITE3_COLUMN_ORIGIN_NAME16=0 +-HAVE_SQLITE3_BIND_PARAMETER_COUNT=0 +-HAVE_SQLITE3_BIND_PARAMETER_NAME=0 +-HAVE_SQLITE3_BIND_PARAMETER_INDEX=0 +-HAVE_SQLITE3_RESULT_ZEROBLOB=0 +-HAVE_SQLITE3_INCRBLOBIO=0 +-HAVE_SQLITE3_KEY=0 +-HAVE_SQLITE3_SHARED_CACHE=0 +-HAVE_SQLITE3_OPEN_V2=0 +-HAVE_SQLITE3_LOAD_EXTENSION=0 +-HAVE_SQLITE3_BACKUPAPI=0 +-HAVE_SQLITE3_PROFILE=0 +-HAVE_SQLITE3_STATUS=0 +-HAVE_SQLITE3_DB_STATUS=0 +-HAVE_SQLITE3_STMT_STATUS=0 + if test "$HAVE_SQLITE3" = 1 -a -n "$SQLITE3_A10N_C" ; then + HAVE_SQLITE3_MALLOC=1 + HAVE_SQLITE3_PREPARE_V2=1 +diff -r 4ce6bb090c10 configure.in +--- a/configure.in Tue Feb 19 11:51:39 2013 -0500 ++++ b/configure.in Wed Feb 20 12:03:37 2013 +0800 +@@ -147,6 +147,29 @@ + AC_SUBST(HAVE_SQLITE_COMPILE) + AC_SUBST(HAVE_SQLITE_PROGRESS_HANDLER) + ++HAVE_SQLITE3_MALLOC=0 ++HAVE_SQLITE3_PREPARE_V2=0 ++HAVE_SQLITE3_PREPARE16_V2=0 ++HAVE_SQLITE3_BIND_ZEROBLOB=0 ++HAVE_SQLITE3_CLEAR_BINDINGS=0 ++HAVE_SQLITE3_COLUMN_TABLE_NAME16=0 ++HAVE_SQLITE3_COLUMN_DATABASE_NAME16=0 ++HAVE_SQLITE3_COLUMN_ORIGIN_NAME16=0 ++HAVE_SQLITE3_BIND_PARAMETER_COUNT=0 ++HAVE_SQLITE3_BIND_PARAMETER_NAME=0 ++HAVE_SQLITE3_BIND_PARAMETER_INDEX=0 ++HAVE_SQLITE3_RESULT_ZEROBLOB=0 ++HAVE_SQLITE3_INCRBLOBIO=0 ++HAVE_SQLITE3_KEY="${HAVE_SQLITE3_KEY:-0}" ++HAVE_SQLITE3_SHARED_CACHE=0 ++HAVE_SQLITE3_OPEN_V2=0 ++HAVE_SQLITE3_LOAD_EXTENSION=0 ++HAVE_SQLITE3_BACKUPAPI=0 ++HAVE_SQLITE3_PROFILE=0 ++HAVE_SQLITE3_STATUS=0 ++HAVE_SQLITE3_DB_STATUS=0 ++HAVE_SQLITE3_STMT_STATUS=0 ++ + ########## + # Find SQLite3 header file and library + # +@@ -262,28 +285,6 @@ + *** thus should be enabled only if you know what you're doing. *** + *******************************************************************]) + test "x$enable_load_extension" = "xyes" || enable_load_extension=no +-HAVE_SQLITE3_MALLOC=0 +-HAVE_SQLITE3_PREPARE_V2=0 +-HAVE_SQLITE3_PREPARE16_V2=0 +-HAVE_SQLITE3_BIND_ZEROBLOB=0 +-HAVE_SQLITE3_CLEAR_BINDINGS=0 +-HAVE_SQLITE3_COLUMN_TABLE_NAME16=0 +-HAVE_SQLITE3_COLUMN_DATABASE_NAME16=0 +-HAVE_SQLITE3_COLUMN_ORIGIN_NAME16=0 +-HAVE_SQLITE3_BIND_PARAMETER_COUNT=0 +-HAVE_SQLITE3_BIND_PARAMETER_NAME=0 +-HAVE_SQLITE3_BIND_PARAMETER_INDEX=0 +-HAVE_SQLITE3_RESULT_ZEROBLOB=0 +-HAVE_SQLITE3_INCRBLOBIO=0 +-HAVE_SQLITE3_KEY=0 +-HAVE_SQLITE3_SHARED_CACHE=0 +-HAVE_SQLITE3_OPEN_V2=0 +-HAVE_SQLITE3_LOAD_EXTENSION=0 +-HAVE_SQLITE3_BACKUPAPI=0 +-HAVE_SQLITE3_PROFILE=0 +-HAVE_SQLITE3_STATUS=0 +-HAVE_SQLITE3_DB_STATUS=0 +-HAVE_SQLITE3_STMT_STATUS=0 + if test "$HAVE_SQLITE3" = 1 -a -n "$SQLITE3_A10N_C" ; then + HAVE_SQLITE3_MALLOC=1 + HAVE_SQLITE3_PREPARE_V2=1 diff --git a/dist/odbc/odbc.patch b/dist/odbc/odbc.patch new file mode 100644 index 00000000..48cc837a --- /dev/null +++ b/dist/odbc/odbc.patch @@ -0,0 +1,66 @@ +--- a/xpath.c Fri May 10 17:26:39 2013 +0800 ++++ b/xpath.c Fri May 10 18:22:18 2013 +0800 +@@ -951,7 +951,7 @@ + static void + xpath_vfunc_string(sqlite3_context *ctx, int argc, sqlite3_value **argv) + { +- return xpath_vfunc_common(ctx, 0, argc, argv); ++ xpath_vfunc_common(ctx, 0, argc, argv); + } + + /** +@@ -964,7 +964,7 @@ + static void + xpath_vfunc_boolean(sqlite3_context *ctx, int argc, sqlite3_value **argv) + { +- return xpath_vfunc_common(ctx, 1, argc, argv); ++ xpath_vfunc_common(ctx, 1, argc, argv); + } + + /** +@@ -977,7 +977,7 @@ + static void + xpath_vfunc_number(sqlite3_context *ctx, int argc, sqlite3_value **argv) + { +- return xpath_vfunc_common(ctx, 2, argc, argv); ++ xpath_vfunc_common(ctx, 2, argc, argv); + } + + /** +@@ -990,7 +990,7 @@ + static void + xpath_vfunc_xml(sqlite3_context *ctx, int argc, sqlite3_value **argv) + { +- return xpath_vfunc_common(ctx, 3, argc, argv); ++ xpath_vfunc_common(ctx, 3, argc, argv); + } + + /** +--- a/zipfile.c Fri May 10 17:26:39 2013 +0800 ++++ b/zipfile.c Fri May 10 18:22:18 2013 +0800 +@@ -226,7 +226,10 @@ + goto error; + } + data = (unsigned char *) mmap(0, length, PROT_READ, +- MAP_FILE | MAP_PRIVATE, fd, 0); ++#ifdef MAP_FILE ++ MAP_FILE | ++#endif ++ MAP_PRIVATE, fd, 0); + if (data == MAP_FAILED) { + goto error; + } +@@ -1303,7 +1306,12 @@ + #else + size = sizeof (mem_blk) + psize + length + 1; + mb = (mem_blk *) mmap(0, size, PROT_READ | PROT_WRITE, +- MAP_ANONYMOUS | MAP_PRIVATE, -1, 0); ++#if defined(MAP_ANONYMOUS) ++ MAP_ANONYMOUS | ++#elif defined(MAP_ANON) ++ MAP_ANON | ++#endif ++ MAP_PRIVATE, -1, 0); + if (mb == MAP_FAILED) { + return 0; + } diff --git a/dist/odbc/sqlite3odbc.patch b/dist/odbc/sqlite3odbc.patch new file mode 100644 index 00000000..65c223c6 --- /dev/null +++ b/dist/odbc/sqlite3odbc.patch @@ -0,0 +1,19 @@ +--- a/sqlite3odbc.c Sun Dec 8 15:19:27 2013 ++++ b/sqlite3odbc.c Fri Mar 28 11:59:54 2014 +@@ -401,6 +401,7 @@ + #define snprintf _snprintf + #define strcasecmp _stricmp + #define strncasecmp _strnicmp ++#define strtoll _strtoi64 + + static HINSTANCE NEAR hModule; /* Saved module handle for resources */ + +@@ -13916,7 +13916,7 @@ + dlen -= 2; + dp += 2; + dlen = dlen / 2; +- s->bincache = bin = xmalloc(dlen); ++ s->bincache = bin = xmalloc(dlen + 1); + if (!bin) { + return nomem(s); + } diff --git a/dist/pubdef.in b/dist/pubdef.in index 266f3aec..dd65c3f6 100644 --- a/dist/pubdef.in +++ b/dist/pubdef.in @@ -1,4 +1,4 @@ -# $Id: pubdef.in,v 4d4a04145f28 2010/07/28 15:20:45 ben $ +# $Id$ # # Name # D == documentation @@ -8,7 +8,6 @@ # C == C# constant DB_AFTER D I J C DB_AGGRESSIVE D I J C -DB_ALIGN8 * I * * DB_ALREADY_ABORTED * I * * DB_AM_CHKSUM * I * * DB_AM_COMPENSATE * I * * @@ -68,6 +67,7 @@ DB_BTREEVERSION * I * * DB_BUFFER_SMALL D I J C DB_CDB_ALLDB D I J C DB_CHKSUM D I J C +DB_CHKSUM_FAIL * I * * DB_CKP_INTERNAL * I * * DB_CONFIG D * * * DB_CONSUME D I J C @@ -81,6 +81,8 @@ DB_DATABASE_LOCK * I * * DB_DATABASE_LOCKING * I * * DB_DBM_HSEARCH * I * * DB_DBT_APPMALLOC D I N C +DB_DBT_BLOB D I J C +DB_DBT_BLOB_REC * I * * DB_DBT_BULK D I J C DB_DBT_DUPOK * I * * DB_DBT_ISSET * I * * @@ -125,11 +127,14 @@ DB_ENV_TXN_NOWAIT * I * * DB_ENV_TXN_SNAPSHOT * I * * DB_ENV_TXN_WRITE_NOSYNC * I * * DB_ENV_YIELDCPU * I * * +DB_EVENT_FAILCHK_INFO * I * * +DB_EVENT_MUTEX_DIED_INFO * I * * DB_EVENT_NOT_HANDLED * I * * DB_EVENT_NO_SUCH_EVENT * I * * DB_EVENT_PANIC D I N C DB_EVENT_REG_ALIVE D I * * DB_EVENT_REG_PANIC D I * * +DB_EVENT_REP_AUTOTAKEOVER_FAILED D I N C DB_EVENT_REP_CLIENT D I N C DB_EVENT_REP_CONNECT_BROKEN D I N C DB_EVENT_REP_CONNECT_ESTD D I N C @@ -138,6 +143,7 @@ DB_EVENT_REP_DUPMASTER D I N C DB_EVENT_REP_ELECTED D I N C DB_EVENT_REP_ELECTION_FAILED D I N C DB_EVENT_REP_INIT_DONE D I N C +DB_EVENT_REP_INQUEUE_FULL D I N C DB_EVENT_REP_JOIN_FAILURE D I N C DB_EVENT_REP_LOCAL_SITE_REMOVED D I N C DB_EVENT_REP_MASTER D I N C @@ -151,8 +157,10 @@ DB_EVENT_REP_WOULD_ROLLBACK * I * * DB_EVENT_WRITE_FAILED D I N C DB_EXCL D I J C DB_EXTENT * I * * +DB_EXIT_FAILCHK * I * * DB_FAILCHK D I * * DB_FAILCHK_ISALIVE * I * * +DB_FAILURE_SYMPTOM_SIZE * I * * DB_FAST_STAT D I J C DB_FCNTL_LOCKING * I * * DB_FILE_ID_LEN * I * * @@ -160,6 +168,7 @@ DB_FIRST D I J C DB_FLUSH D I J C DB_FORCE D I J C DB_FORCESYNC D I J C +DB_FORCESYNCENV D I J C DB_FOREIGN_ABORT * I J C DB_FOREIGN_CASCADE * I J C DB_FOREIGN_CONFLICT * I * C @@ -182,7 +191,7 @@ DB_HEAP D I J C DB_HEAPMAGIC * I * * DB_HEAPOLDVER * I * * DB_HEAPVERSION * I * * -DB_HEAP_FULL D I J C +DB_HEAP_FULL D I N C DB_HEAP_RID_SZ D I * * DB_HOME D * * * DB_HOTBACKUP_IN_PROGRESS D I J C @@ -196,6 +205,7 @@ DB_INIT_MUTEX * I * * DB_INIT_REP D I J C DB_INIT_TXN D I J C DB_INORDER D I J C +DB_INTERNAL_BLOB_DB * I * * DB_INTERNAL_PERSISTENT_DB * I * * DB_INTERNAL_TEMPORARY_DB * I * * DB_JOINENV * I J C @@ -256,6 +266,7 @@ DB_LOGOLDVER * I * * DB_LOGVERSION * I * * DB_LOGVERSION_LATCHING D I * * DB_LOG_AUTO_REMOVE D I J C +DB_LOG_BLOB D I J C DB_LOG_BUFFER_FULL D I * C DB_LOG_CHKPNT * I * * DB_LOG_COMMIT * I * * @@ -265,6 +276,7 @@ DB_LOG_DSYNC D I J C DB_LOG_IN_MEMORY D I J C DB_LOG_LOCKED * I * * DB_LOG_NOCOPY * I * * +DB_LOG_NOSYNC D I J C DB_LOG_NO_DATA * I * * DB_LOG_NOT_DURABLE * I * * DB_LOG_SILENT_ERR * I * * @@ -293,6 +305,7 @@ DB_MEM_LOCKER D I J C DB_MEM_LOGID D I J C DB_MEM_TRANSACTION D I J C DB_MEM_THREAD D I J C +DB_META_CHKSUM_FAIL D I N C DB_MPOOL_CREATE D I * * DB_MPOOL_DIRTY D I * * DB_MPOOL_TRY D I * * @@ -305,23 +318,25 @@ DB_MPOOL_NOFILE D I J C DB_MPOOL_NOLOCK * I * * DB_MPOOL_UNLINK D I J C DB_MULTIPLE D I J C -DB_MULTIPLE_INIT D I * * +DB_MULTIPLE_INIT D I N * DB_MULTIPLE_KEY D I J C DB_MULTIPLE_KEY_NEXT D I * * DB_MULTIPLE_KEY_RESERVE_NEXT D I * * DB_MULTIPLE_KEY_WRITE_NEXT D I * * -DB_MULTIPLE_NEXT D I * * +DB_MULTIPLE_NEXT D I N * DB_MULTIPLE_RECNO_NEXT D I * * DB_MULTIPLE_RECNO_RESERVE_NEXT D I * * DB_MULTIPLE_RECNO_WRITE_INIT D I * * DB_MULTIPLE_RECNO_WRITE_NEXT D I * * DB_MULTIPLE_RESERVE_NEXT D I * * DB_MULTIPLE_WRITE_INIT D I * * -DB_MULTIPLE_WRITE_NEXT D I * * +DB_MULTIPLE_WRITE_NEXT D I N * DB_MULTIVERSION D I J C DB_MUTEX_ALLOCATED * I * * +DB_MUTEX_DESCRIBE_STRLEN * I * * DB_MUTEX_LOCKED * I * * DB_MUTEX_LOGICAL_LOCK * I * * +DB_MUTEX_OWNER_DEAD * I * * DB_MUTEX_PROCESS_ONLY D I * C DB_MUTEX_SELF_BLOCK D I * C DB_MUTEX_SHARED D I * * @@ -332,6 +347,7 @@ DB_NEXT_NODUP D I J C DB_NODUPDATA D I J C DB_NOERROR * I * * DB_NOFLUSH * I * * +DB_NOINTMP * I * * DB_NOLOCKING D I J C DB_NOMMAP D I J C DB_NOORDERCHK D I J C @@ -400,10 +416,14 @@ DB_REPMGR_ACKS_ONE_PEER D I J C DB_REPMGR_ACKS_QUORUM D I J C DB_REPMGR_CONF_2SITE_STRICT D I J C DB_REPMGR_CONF_ELECTIONS D I J C +DB_REPMGR_CONF_PREFMAS_CLIENT D I J C +DB_REPMGR_CONF_PREFMAS_MASTER D I J C DB_REPMGR_CONNECTED D I J C +DB_REPMGR_CONN_ERR * I * * DB_REPMGR_DISCONNECTED D I J C DB_REPMGR_NEED_RESPONSE D I J C -DB_REPMGR_ISPEER D I J * +DB_REPMGR_ISPEER D I J C +DB_REPMGR_ISVIEW D I J C DB_REPMGR_PEER D I J C DB_REP_ACK_TIMEOUT D I J C DB_REP_ANYWHERE D I J C @@ -413,6 +433,7 @@ DB_REP_CLIENT D I J C DB_REP_CONF_AUTOINIT D I J C DB_REP_CONF_BULK D I J C DB_REP_CONF_DELAYCLIENT D I J C +DB_REP_CONF_ELECT_LOGLENGTH * I * * DB_REP_CONF_INMEM D I J C DB_REP_CONF_LEASE D I J C DB_REP_CONF_NOWAIT D I J C @@ -460,6 +481,7 @@ DB_SEQ_WRAPPED * I * * DB_SET D I J C DB_SET_LTE D I * * DB_SET_LOCK_TIMEOUT D I J C +DB_SET_MUTEX_FAILCHK_TIMEOUT D I * * DB_SET_RANGE D I J C DB_SET_REG_TIMEOUT D I * * DB_SET_RECNO D I J C @@ -469,7 +491,7 @@ DB_SET_TXN_TIMEOUT D I J C DB_SHALLOW_DUP * I * * DB_SNAPSHOT D I J C DB_STAT_ALL D I * C -DB_STAT_ALLOC * I * * +DB_STAT_ALLOC * I * C DB_STAT_CLEAR D I J C DB_STAT_LOCK_CONF D I * C DB_STAT_LOCK_LOCKERS D I * C @@ -479,6 +501,9 @@ DB_STAT_MEMP_HASH D I * C DB_STAT_MEMP_NOERROR * I * * DB_STAT_SUBSYSTEM D I * C DB_STAT_SUMMARY * I * * +DB_STREAM_READ D I J C +DB_STREAM_SYNC_WRITE D I J C +DB_STREAM_WRITE D I J C DB_ST_DUPOK * I * * DB_ST_DUPSET * I * * DB_ST_DUPSORT * I * * @@ -526,6 +551,7 @@ DB_VERB_BACKUP D I J C DB_VERB_DEADLOCK D I J C DB_VERB_FILEOPS D I J C DB_VERB_FILEOPS_ALL D I J C +DB_VERB_MVCC D I * * DB_VERB_RECOVERY D I J C DB_VERB_REGISTER D I J C DB_VERB_REPLICATION D I J C @@ -558,4 +584,4 @@ DB_XA_CREATE D I * * DB_YIELDCPU D I J C DB2_AM_EXCL * I * * DB2_AM_INTEXCL * I * * -DB2_AM_NOWAIT * I * *
\ No newline at end of file +DB2_AM_NOWAIT * I * * diff --git a/dist/s_android b/dist/s_android index 47972df8..7de968c8 100755 --- a/dist/s_android +++ b/dist/s_android @@ -93,6 +93,7 @@ s/@uintmax_t_decl@// s/@uintptr_t_decl@// /@FILE_t_decl@/d /@off_t_decl@/d +s/@db_off_t_decl@/typedef int64_t db_off_t;/ /@pid_t_decl@/d /@size_t_decl@/d /@ssize_t_decl@/d diff --git a/dist/s_csharp_stat b/dist/s_csharp_stat index d7b22a6c..03452912 100755 --- a/dist/s_csharp_stat +++ b/dist/s_csharp_stat @@ -8,7 +8,7 @@ msgcsharp="/*- * * See the file LICENSE for redistribution information. * - * Copyright (c) 2002, 2012 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2015 Oracle and/or its affiliates. All rights reserved. */" f=../lang/csharp/src/Internal/StatStructs.cs @@ -50,7 +50,8 @@ s:/\*.*\*/:: P D } -}" +}" \ + -e "s:\;.*:\;:" } stat_class() diff --git a/dist/s_docs b/dist/s_docs index 50d391cb..c573efdd 100755 --- a/dist/s_docs +++ b/dist/s_docs @@ -22,7 +22,7 @@ tmp_dir=$distdir/s_docs.tmp rm -rf $tmp_dir && mkdir $tmp_dir && mkdir $tmp_dir/logs if [ "$docs_dir" = "" ]; then - docs_dir=$rootdir/docs_books-5.3 + docs_dir=$rootdir/docs_books-6.1 fi # Verify that the docs_books repository is where we expect it. diff --git a/dist/s_include b/dist/s_include index 1d3c6aac..93ea3a79 100755 --- a/dist/s_include +++ b/dist/s_include @@ -79,7 +79,7 @@ head defonly _DB_INT_DEF_IN_ > $i_dfile # Process the standard directories, creating per-directory prototype # files and adding to the external prototype and #define files. -for i in db btree clib common crypto dbreg env fileops hash heap \ +for i in db blob btree clib common crypto dbreg env fileops hash heap \ hmac lock log mp mutex os qam rep repmgr sequence tcl txn xa; do head "_${i}_ext_h_" > $i_pfile diff --git a/dist/s_java_stat b/dist/s_java_stat index 434fdd52..0d59ed5f 100755 --- a/dist/s_java_stat +++ b/dist/s_java_stat @@ -9,7 +9,7 @@ msgjava="/*- * * See the file LICENSE for redistribution information. * - * Copyright (c) 2002, 2012 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2015 Oracle and/or its affiliates. All rights reserved. */" s=/tmp/__java.sed @@ -96,6 +96,14 @@ $2 return (\1 != 0);\\ $2 }/p d } + /u_int32_t.*st_view/{ + s/^[ ]*[^ ]*[ ]*\([^[;]*\).*/\\ +$2 private int \1;\\ +$2 public boolean get_\1() {\\ +$2 return (\1 != 0);\\ +$2 }/p + d + } /db_size_t/{ s/^[ ]*[^ ]*[ ]*\([^;]*\).*/\\ $2 private long \1;\\ @@ -420,7 +428,8 @@ EOF jclass compact jclass_toString compact CompactStats echo '}') | - perl -w -p -e 's,public int get(FillPercent|Pages\(|Timeout|Truncate),/* package */ int get$1,g;'> $t0 + perl -w -p -e 's,public int get(FillPercent|Pages\(|Timeout|Truncate),/* package */ int get$1,g;'> $t + sed '/+ compact_fillpercent$/d;/+ compact_pages$/d;/+ compact_timeout$/d;/+ compact_truncate$/d' < $t > $t0 f=../lang/java/src/com/sleepycat/db/CompactStats.java ./s_javadoc_merge $f $t0 > $t cmp $t $f > /dev/null 2>&1 || @@ -433,6 +442,10 @@ stat_class lock_stat LockStats stat_class log_stat LogStats stat_class mpool_fstat CacheFileStats stat_class mpool_stat CacheStats +f=../lang/java/src/com/sleepycat/db/CacheStats.java +perl -w -p -e 's,public int getOddfSize(Detect|Resolve),/* package */ int getOddfSize$1,g;' < $f > $t +sed '/+ st_oddfsize_detect$/d;/+ st_oddfsize_resolve$/d' < $t > $f + stat_class mutex_stat MutexStats stat_class qam_stat QueueStats " extends DatabaseStats" stat_class rep_stat ReplicationStats "" " @@ -444,7 +457,12 @@ import com.sleepycat.db.internal.DbConstants; public static final int REP_NONE = 0;" +# Build the ReplicationManagerStats and do not expose st_incoming_queue_size in the Java APIs. stat_class repmgr_stat ReplicationManagerStats +f=../lang/java/src/com/sleepycat/db/ReplicationManagerStats.java +perl -w -p -e 's,public int getIncomingQueueSize,/* package */ int getIncomingQueueSize,g;' < $f > $t +sed '/+ st_incoming_queue_size$/d' < $t > $f + stat_class seq_stat SequenceStats # Build TransactionStats.java - special because of embedded Active class diff --git a/dist/s_javadoc b/dist/s_javadoc index 5d8b85cf..6f689470 100755 --- a/dist/s_javadoc +++ b/dist/s_javadoc @@ -8,13 +8,11 @@ DB_HOME=`dirname $0`/.. javadoc $JAVADOC_ARGS -protected -d $DB_HOME/docs/java \ --use -link http://download.oracle.com/javase/1.5.0/docs/api/ \ - -link http://download.oracle.com/javaee/5/api/ \ +-use -link http://download.oracle.com/javaee/7/api/ \ -sourcepath $DB_HOME/lang/java/src \ - -source 1.5 \ -stylesheetfile $DB_HOME/lang/java/doc/style.css \ -header '<b>Berkeley DB</b><br><font size="-1"> version '$DB_VERSION_MAJOR.$DB_VERSION_MINOR.$DB_VERSION_PATCH'</font>' \ - -windowtitle 'Oracle - Berkeley DB Java API' -bottom '<font size=1>Copyright (c) 1996, 2012 Oracle and/or its affiliates. All rights reserved.</font>' \ + -windowtitle 'Oracle - Berkeley DB Java API' -bottom '<font size=1>Copyright (c) 1996, 2015 Oracle and/or its affiliates. All rights reserved.</font>' \ com.sleepycat.db \ com.sleepycat.bind com.sleepycat.bind.serial com.sleepycat.bind.tuple \ com.sleepycat.collections \ diff --git a/dist/s_message_id b/dist/s_message_id index 4159cc60..5c1509cb 100755 --- a/dist/s_message_id +++ b/dist/s_message_id @@ -17,18 +17,19 @@ for i in $GREP_CMDS; do if [ "`which $i`" = "" ]; then continue fi - echo "s_message_id test" > s_message_id.tmp - $i "s_message_id test" s_message_id.tmp -o --include=*.tmp | \ - $i -v "s_message_id.txt" > s_message_id.tmp.out 2>&1 - if [ `$i "unrecognized option" s_message_id.tmp.out | wc -l` \ - -eq 0 ] && [ `$i "invalid option" s_message_id.tmp.out | \ - wc -l` -eq 0 ] && [ `$i "can't open" s_message_id.tmp.out | \ + echo "s_message_id test" > /tmp/s_message_id.tmp + $i "s_message_id test" /tmp/s_message_id.tmp -o --include=*.tmp | \ + $i -v "s_message_id.txt" > /tmp/s_message_id.tmp.out 2>&1 + if [ `$i "unrecognized option" /tmp/s_message_id.tmp.out | wc -l` \ + -eq 0 ] && [ `$i "invalid option" /tmp/s_message_id.tmp.out | \ + wc -l` -eq 0 ] && [ `$i "can't open" /tmp/s_message_id.tmp.out | \ wc -l` -eq 0 ]; then GREP_CMD=$i break fi - rm s_message_id.tmp s_message_id.tmp.out done +trap 'rm -f /tmp/s_message_id.tmp /tmp/s_message_id.tmp.out; exit 1' 1 2 3 13 15 +trap 'rm -f /tmp/s_message_id.tmp /tmp/s_message_id.tmp.out; exit 0' 0 if [ "$GREP_CMD" = "" ]; then echo "UNSUPPORTED COMMAND: (g)grep -o --include" echo "Please try other platform" @@ -69,12 +70,13 @@ for i in $MSG_DIRS; do if [ "$i" = "../util/" ] || [ "$i" = "../lang/dbm/" ]; then cat_indx=10 cat_dirs="../util/ ../lang/dbm/" - elif [ "$3" = "common" ] || [ "$3" = "crypto" ] || \ + elif [ "$3" = "blob" ] || [ "$3" = "common" ] || \ + [ "$3" = "crypto" ] || \ [ "$3" = "fileops" ] || [ "$3" = "hmac" ] || \ [ "$3" = "os" ] || [ "$3" = "os_qnx" ] || \ [ "$3" = "os_vxworks" ] || [ "$3" = "os_windows" ]; then cat_indx=0 - cat_dirs=$i"common "$i"crypto "$i"fileops " + cat_dirs=$i"blob "$i"common "$i"crypto "$i"fileops " cat_dirs=$cat_dirs$i"hmac "$i"os "$i"os_qnx " cat_dirs=$cat_dirs$i"os_vxworks "$i"os_windows" elif [ "$3" = "db" ] || [ "$3" = "dbinc" ] || \ @@ -179,9 +181,10 @@ for i in $MSG_DIRS; do done # Check if there is any remaining "BDB####". -# NOTE: If "BDB####" is not .c, .h, .in files, they won't be updated with the -# real message id. +# NOTE: If "BDB####" is not .c, .h, .in, .awk files, they won't be updated with +# the real message id. if [ `$GREP_CMD "BDB####" -r $MSG_DIRS | wc -l` -gt 0 ]; then echo "WARNING: There is remaining BDB####. Please check:" - $GREP_CMD "BDB####" -r $MSG_DIRS + $GREP_CMD "BDB####" -r $MSG_DIRS -wl --include=*.c --include=*.h \ + --include=*.in --include=*.awk fi diff --git a/dist/s_readme b/dist/s_readme index 38d32998..f4b7f048 100755 --- a/dist/s_readme +++ b/dist/s_readme @@ -17,7 +17,11 @@ $DB_VERSION_FULL_STRING This is Berkeley DB $DB_VERSION_FAMILY$DB_VERSION_LETTER Release $DB_VERSION_RELEASE from Oracle. To view release and installation documentation, load the distribution file docs/index.html -into your web browser. +into your web browser. Technical support can be obtained by visiting +the Berkeley DB Oracle Technical Network (OTN) forum, here: + +https://forums.oracle.com/forums/forum.jspa?forumID=271 + END_OF_README f=../README diff --git a/dist/s_recover b/dist/s_recover index b0ba3431..db1f83df 100755 --- a/dist/s_recover +++ b/dist/s_recover @@ -2,6 +2,9 @@ # $Id$ # # Build the automatically generated logging/recovery files. +# +# When adding a new log record, the log record needs a unique id. Currently +# there is a large gap of unused ids from 87-137. header=/tmp/__db_a loglist=/tmp/__db_b @@ -46,7 +49,7 @@ for i in $DIR; do -v header_file=$header \ -v print_file=$print\ -v source_file=$source \ - -v template_file=$template < $f + -v template_file=$template $f f=../src/dbinc_auto/${subsystem}_auto.h cmp $header $f > /dev/null 2>&1 || diff --git a/dist/s_sql_drivers b/dist/s_sql_drivers index c3bedb1e..87e796f0 100755 --- a/dist/s_sql_drivers +++ b/dist/s_sql_drivers @@ -23,13 +23,35 @@ die() } START_DIR=`pwd` -if [ "x$1" != "x" ]; then - PKG_ROOT=$1 -else - PKG_ROOT=../.. -fi -DB_ADDONS_REPO=$PKG_ROOT/db_addons-5.3 +PKG_ROOT=../.. +BUILD_ALL=1 +CLEAN_ONLY=0 +BUILD_JDBC=0 +BUILD_ODBC=0 +BUILD_NET=0 +while [ $# -gt 0 ] +do + case "$1" in + -clean) + CLEAN_ONLY=1;; + -jdbc) + BUILD_ALL=0 + BUILD_JDBC=1;; + -odbc) + BUILD_ALL=0 + BUILD_ODBC=1;; + -adodotnet) + BUILD_ALL=0 + BUILD_NET=1;; + -addons) + shift + PKG_ROOT=$1;; + esac + shift +done + +DB_ADDONS_REPO=$PKG_ROOT/db_addons-6.1 update_repo() { if [ ! -d $DB_ADDONS_REPO ]; then @@ -42,21 +64,6 @@ update_repo() die "Failed updating the db_addons repository." fi } -update_repo - -cd $START_DIR -ODBC_PACKAGE=`ls $DB_ADDONS_REPO/thirdparty/sql/sqliteodbc-*.tar.gz | tail -1` -JDBC_PACKAGE=`ls $DB_ADDONS_REPO/thirdparty/sql/javasqlite-*.tar.gz | tail -1` -ADO_PACKAGE=`ls $DB_ADDONS_REPO/thirdparty/sql/sqlite-dotnetsrc*.zip | tail -1` -HOMEDIR=`pwd` - -SQL_DIR=../lang/sql/ -ODBC_DIR=$SQL_DIR/odbc -JDBC_DIR=$SQL_DIR/jdbc -ADO_DIR=$PKG_ROOT/adodotnet -rm -rf "$ODBC_DIR" && mkdir -p $ODBC_DIR -rm -rf "$JDBC_DIR" && mkdir -p $JDBC_DIR -rm -rf "$ADO_DIR" && mkdir -p $ADO_DIR ############################################################################## @@ -75,6 +82,16 @@ fi dir=`basename $ODBC_PACKAGE .tar.gz` gzip -c -d $ODBC_PACKAGE | tar xf - mv $dir/* $ODBC_DIR || exit $? +rm -r $dir + +# Apply patches +for PATCH in 'odbc/odbc.patch' 'odbc/sqlite3odbc.patch' +do + ( cd $ODBC_DIR && patch -p1 -i $START_DIR/$PATCH ) + if [ $? -ne 0 ]; then + die "Can not apply patch $PATCH" + fi +done # Remove unnecessary files from packages. @@ -115,6 +132,22 @@ fi dir=`basename $JDBC_PACKAGE .tar.gz` gzip -c -d $JDBC_PACKAGE | tar xf - mv $dir/* $JDBC_DIR || exit $? +rm -r $dir + +# Apply patches. +# The change in jdbc.patch was accepted back into javasqlite-20131124, +# so we don't need to apply this patch any more. +#PATCH='jdbc/jdbc.patch' +#( cd $JDBC_DIR && patch -p1 -i $START_DIR/$PATCH ) +#if [ $? -ne 0 ]; then +# die "Can not apply patch $PATCH" +#fi + +PATCH='jdbc/jdbc.patch2' +( cd $JDBC_DIR && patch -p1 -i $START_DIR/$PATCH ) +if [ $? -ne 0 ]; then + die "Can not apply patch $PATCH" +fi # # Remove unnecessary files from packages. @@ -163,11 +196,16 @@ rm -f mkconst* # Note: If you run into XQuery issue when executing the script, you may need to # upgrade the XQilla version to at lease 2.2 ############################################################################## +set_adodotnet_dir() +{ +ADO_DIR="dbsql-adodotnet-${DB_VERSION_MAJOR}.${DB_VERSION_MINOR}.${DB_VERSION_PATCH}" +} + s_sql_adodotnet() { cd $START_DIR ADO_DIR_ORIG=`basename $ADO_PACKAGE .zip` -ADO_DIR="dbsql-adodotnet-${DB_VERSION_MAJOR}.${DB_VERSION_MINOR}.${DB_VERSION_PATCH}" +set_adodotnet_dir TMP_FILE='temp_file' # Detect package @@ -275,7 +313,6 @@ done # Replace SQLite source code with DBSQL source code cp -f $START_DIR/../lang/sql/generated/* SQLite.Interop/src/core/ -cp -f $START_DIR/adodotnet/testce.2008.csproj testce/ # Apply patches PATCH='adodotnet/adodotnet.patch' @@ -285,40 +322,31 @@ if [ $? -ne 0 ]; then fi # -# Generate WinCE projects +# Change the projects. # -WINDOWS_VCPROJ="SQLite.Interop/SQLite.Interop.2008.vcproj" -WINDOWS_2010_VCPROJ="SQLite.Interop/SQLite.Interop.2010.vcxproj" -WINCE_VCPROJ_NAME="SQLite.Interop.2008.WinCE" -WINCE_VCPROJ="SQLite.Interop/${WINCE_VCPROJ_NAME}.vcproj" XQ_COMMON="$START_DIR/adodotnet/adapt_common.xq.in" -# Define WINCE_PLATFORM_NAME -# Use the most common project name for WinCE project file. -WINCE_PLATFORM_NAME='Pocket PC 2003 (ARMV4)' -WINCE_PROJECT_GUID='A7895F70-6FD5-11E0-A1F0-0800200C9A66' +# Change SQLite.Interop.CE.2005/2008.vcproj to add platforms. XQ='gen_wince_project.xq' XQ_IN="${XQ}.in" XQ_IN_SRC="$START_DIR/adodotnet/${XQ_IN}" -# Generate XQuery script cp $XQ_COMMON $XQ_IN cat $XQ_IN_SRC >> $XQ_IN sed -e "s/@DB_VERSION_MAJOR@/$DB_VERSION_MAJOR/g" \ -e "s/@DB_VERSION_MINOR@/$DB_VERSION_MINOR/g" \ - -e "s/@PROJECT_GUID@/$WINCE_PROJECT_GUID/g" \ - -e "s/@PLATFORM_NAME@/$WINCE_PLATFORM_NAME/g" \ - -e "s/@PROJECT_FILE@/$WINCE_VCPROJ_NAME/g" \ -e "s/@BDB_PATH@/$BDB_PATH4SED/g" \ -e "s/@BDB_NAME@/$BDB_ROOT/g" \ < $XQ_IN >> $XQ - -cp $WINDOWS_VCPROJ $WINCE_VCPROJ -xqilla -u -i $WINCE_VCPROJ $XQ +# Change File list for vcproject file +for proj in CE.2005 CE.2008 +do + xqilla -u -i SQLite.Interop/SQLite.Interop.$proj.vcproj $XQ +done rm -f $XQ rm -f $XQ_IN # -# Change SQLite.Interop/SQLite.Interop.2010.vcproj for Win32/x64 +# Change SQLite.Interop.2010/2012.vcproj for Win32/x64. # XQ='adapt_SQLite.Interop.2010.xq' XQ_IN="${XQ}.in" @@ -331,18 +359,33 @@ cat $XQ_COMMON >> $XQ_IN cat $XQ_IN_SRC >> $XQ_IN sed -e "s/@DB_VERSION_MAJOR@/$DB_VERSION_MAJOR/g" \ -e "s/@DB_VERSION_MINOR@/$DB_VERSION_MINOR/g" \ - -e "s/@WINCE_PLATFORM_NAME@/$WINCE_PLATFORM_NAME/g" \ -e "s/@BDB_PATH@/$BDB_PATH4SED/g" \ -e "s/@BDB_NAME@/$BDB_ROOT/g" \ < $XQ_IN >> $XQ # Change File list for vcproject file -xqilla -u -i $WINDOWS_2010_VCPROJ $XQ +for proj in 2010 Static.2010 2012 Static.2012 2013 Static.2013 CE.2012 +do + xqilla -u -i SQLite.Interop/SQLite.Interop.$proj.vcxproj $XQ +done rm -f $XQ rm -f $XQ_IN +# Add BDB files into SQLite.Interop.CE.2012.vcxproj using sed, since +# xqilla can not handle that. +sed -n -e '/File.*RelativePath/p' $BDB_ROOT/build_wince/VS8/db.vcproj | \ + sed -e 's/File/ClCompile/g' -e 's/RelativePath/Include/g' \ + -e "s#\\.\\.\\\\\\.\\.\\\\src#..\\\\$BDB_ROOT\\\\src#g" >ce.tmp +sed -e '$d' SQLite.Interop/SQLite.Interop.CE.2012.vcxproj >prj.tmp +echo '<ItemGroup>' >> prj.tmp +cat ce.tmp >> prj.tmp +echo '</ItemGroup>' >> prj.tmp +echo '</Project>' >> prj.tmp +mv prj.tmp SQLite.Interop/SQLite.Interop.CE.2012.vcxproj +rm -f ce.tmp + # -# Change SQLite.Interop/SQLite.Interop.2008.vcproj for Win32/x64 +# Change SQLite.Interop.[CE.]2005/2008.vcproj for Win32/x64/WinCE. # XQ='adapt_SQLite.Interop.2008.xq' XQ_IN="${XQ}.in" @@ -352,14 +395,15 @@ cp $XQ_COMMON $XQ_IN cat $XQ_IN_SRC >> $XQ_IN sed -e "s/@DB_VERSION_MAJOR@/$DB_VERSION_MAJOR/g" \ -e "s/@DB_VERSION_MINOR@/$DB_VERSION_MINOR/g" \ - -e "s/@WINCE_PLATFORM_NAME@/$WINCE_PLATFORM_NAME/g" \ -e "s/@BDB_PATH@/$BDB_PATH4SED/g" \ -e "s/@BDB_NAME@/$BDB_ROOT/g" \ < $XQ_IN >> $XQ # Change File list for vcproject file -xqilla -u -i $WINDOWS_VCPROJ $XQ -xqilla -u -i $WINCE_VCPROJ $XQ +for proj in 2005 2008 CE.2005 CE.2008 Static.2005 Static.2008 +do + xqilla -u -i SQLite.Interop/SQLite.Interop.$proj.vcproj $XQ +done rm -f $XQ rm -f $XQ_IN @@ -368,7 +412,7 @@ rm -f $XQ_IN # 1. Change xml version to 1.0, otherwise Visual Studio can not open it # 2. Remove unnecessary xmlns in VS2010 project file # -for f in $WINDOWS_VCPROJ $WINCE_VCPROJ $WINDOWS_2010_VCPROJ +for f in `ls SQLite.Interop/*.vcproj SQLite.Interop/*.vcxproj` do forward="cat" which tidy > /dev/null 2>&1 @@ -377,8 +421,9 @@ do forward='tidy -w 1000 -xml -i -q -utf8 -n' # Rename _ProjectFileVersion for now, othwerwise the tidy command - # might fails - sed -e 's/_ProjectFileVersion/tempProjectFileVersion/g' $f > $TMP_FILE + # might fails. The BDB requires WIN2K at least. + sed -e 's/_ProjectFileVersion/tempProjectFileVersion/g' \ + -e 's/_WIN32_WINNT=0x0400/_WIN32_WINNT=0x0500/g' $f > $TMP_FILE else echo "Warning: can not find tidy command to format the project file" fi @@ -391,6 +436,29 @@ do rm ${f}.tmp done +# Change the solutions containing WinCE projects so that all the supported +# platforms can be seen and selected. +for sln in SQLite.NET.2005.MSBuild.sln SQLite.NET.2005.sln \ + SQLite.NET.2008.MSBuild.sln SQLite.NET.2008.sln +do + for conf in Release ReleaseNativeOnly Debug DebugNativeOnly + do + for platform in "Windows Mobile 6.5.3 Professional DTK (ARMV4I)" \ + "Windows Mobile 6 Professional SDK (ARMV4I)" \ + "Windows Mobile 5.0 Smartphone SDK (ARMV4I)" \ + "Windows Mobile 5.0 Pocket PC SDK (ARMV4I)" \ + "Smartphone 2003 (ARMV4)" + do + # Use proper indent for the added string so the + # solution file will have good format. + sed -e "/GlobalSection.*SolutionConfigurationPlatforms.*/a\\ + $conf|$platform = $conf|$platform" $sln > $sln.tmp + mv $sln.tmp $sln + done + done + rm -f $sln.tmp +done + # # Don't build Designer and Linq by default -- users can build them # as needed. @@ -417,52 +485,6 @@ do done # -# Generate WinCE edition for Solution files -# -# Skip *.MSBuild.sln and *.2010.sln since they don't include CompactFramework -# components -# -for sln in SQLite.NET.2008.sln -do - dst=`echo $sln | sed -e 's/2008/2008.WinCE/g'` - - # Dos to unix - sed 's/$\r//' $sln > ${sln}.tmp - rm -f $TMP_FILE - - # Change Win32 projects to WinCE projects - sed -e "s/|Win32/|$WINCE_PLATFORM_NAME/g" ${sln}.tmp > $TMP_FILE - sed -e "s/SQLite.Interop.2008/SQLite.Interop.2008.WinCE/g" $TMP_FILE > ${sln}.tmp - # Remove x64 platform -- WinCE projects doesn't require it - sed -e "/|x64/d" ${sln}.tmp > $TMP_FILE - - # Remove SQLite.Designer, since it's not for Windows mobile/CE - guid=`grep 'SQLite.Designer' $TMP_FILE | head -n 1 | awk -F '[{}]' '{print $4}'` - if [ "$guid" != "" ]; then - sed -e '/SQLite.Designer/,/EndProject/d' \ - -e "/$guid/d" $TMP_FILE > ${sln}.tmp - else - cp $TMP_FILE ${sln}.tmp - fi - - # Change test.2008 to testce.2008 for WinCE testing - testceProj="$START_DIR/adodotnet/testce.2008.csproj" - test_GUID=`cat ${sln}.tmp | grep test\.2008 | awk -F "[{}]" '{print $4}'` - testce_GUID=`cat $testceProj | grep ProjectGuid | awk -F "[{}]" '{print $2}'` - - # Change test project name and UID - sed -e "s/test\\\/testce\\\/g" \ - -e "s/$test_GUID/$testce_GUID/g" \ - -e "s/test\.2008/testce\.2008/g" \ - ${sln}.tmp > $TMP_FILE - - # Change to dos format -- VisualStudio solution files must be dos format - sed -e 's/
//g' -e 's/$/
/' $TMP_FILE > $dst - - rm -f ${sln}.tmp -done - -# # SQLITE_MEMDEBUG only suit (Tcl) testfixture. Disable it. # cd $START_DIR/$ADO_DIR @@ -473,11 +495,6 @@ do done # -# Set Working directory for debugging with IDE -# -cp $START_DIR/adodotnet/test.2008.csproj.user test - -# # Clean Env # rm -f $TMP_FILE @@ -497,10 +514,37 @@ fi # Clean environment rm -r $ADO_DIR -} +} # end ADO.NET packaging -s_sql_odbc -s_sql_jdbc -s_sql_adodotnet +########################################################### + +cd $START_DIR +SQL_DIR=../lang/sql/ +HOMEDIR=`pwd` + +if [ "$CLEAN_ONLY" != 0 ]; then + set_adodotnet_dir + rm -rf $SQL_DIR/jdbc $SQL_DIR/odbc ../release/${ADO_DIR}.zip + exit 0 +fi + +update_repo + +if [ "$BUILD_ALL" != 0 -o "$BUILD_JDBC" != 0 ]; then + JDBC_PACKAGE=`ls $DB_ADDONS_REPO/thirdparty/sql/javasqlite-*.tar.gz | tail -1` + JDBC_DIR=$SQL_DIR/jdbc + rm -rf "$JDBC_DIR" && mkdir -p $JDBC_DIR + s_sql_jdbc +fi +if [ "$BUILD_ALL" != 0 -o "$BUILD_ODBC" != 0 ]; then + ODBC_PACKAGE=`ls $DB_ADDONS_REPO/thirdparty/sql/sqliteodbc-*.tar.gz | tail -1` + ODBC_DIR=$SQL_DIR/odbc + rm -rf "$ODBC_DIR" && mkdir -p $ODBC_DIR + s_sql_odbc +fi +if [ "$BUILD_ALL" != 0 -o "$BUILD_NET" != 0 ]; then + ADO_PACKAGE=`ls $DB_ADDONS_REPO/thirdparty/sql/sqlite-dotnetsrc*.zip | tail -1` + s_sql_adodotnet +fi diff --git a/dist/s_sql_upgrade b/dist/s_sql_upgrade index 756abe9f..e515442c 100755 --- a/dist/s_sql_upgrade +++ b/dist/s_sql_upgrade @@ -19,6 +19,29 @@ copy_if_changes() rm -f $f2 } +# Check or recheck-and-apply each patch +try_patches() +{ + doit=$1 + for f in $sqldir/../adapter/sqlite-patches/[0-9][0-9]_*.patch ; do + msgs=$( patch -d $sqldir -p0 --dry-run --force < $f 2>&1 ) + if test $? -ne 0 ; then + echo "Patch $f would fail:" + echo "$msgs" | sed -e 's/^/ /' + echo "Exiting." + exit 1 + else + if test $doit = 1 ; then + echo "Applying patch $f" + patch -d $sqldir -p0 --force --quiet < $f + fi + fi + done +} + +# echo "Testing patch files for the sqlite source tree." +# try_patches 0 + # Update the SQLite Makefile to refer to the replaced source files. MAKEFILE_NAME=$sqldir/Makefile.in for f in ../lang/sql/adapter/*.[ch]; do @@ -27,7 +50,7 @@ for f in ../lang/sql/adapter/*.[ch]; do copy_if_changes $MAKEFILE_NAME $MAKEFILE_NAME.tmp done # Update the include path so that headers in sql/adapter dir can be found. -sed -e '/^TCC/s/-I\. -I${TOP}\/src/& -I${TOP}\/..\/adapter/' $MAKEFILE_NAME > $MAKEFILE_NAME.tmp +sed -e '/^TCC/s/-I\. -I${TOP}\/src/& -I${TOP}\/..\/adapter -I${TOP}\/ext\/fts3/' $MAKEFILE_NAME > $MAKEFILE_NAME.tmp copy_if_changes $MAKEFILE_NAME $MAKEFILE_NAME.tmp # We will be building from a different directory level, update the makefile @@ -36,15 +59,7 @@ sed -e 's/TOP = \.\.\/sqlite/TOP = \.\.\/\.\.\/sql\/sqlite/' $sqldir/Makefile.li copy_if_changes $sqldir/Makefile.linux-gcc $sqldir/Makefile.linux-gcc.tmp echo "Applying patch files to the sqlite source tree." -for f in $sqldir/../adapter/sqlite-patches/[0-9][0-9]_*.patch ; do - if (cd $sqldir && patch -p0 --dry-run --force --quiet) < $f > /dev/null; then - echo "Applying patch $f" - (cd $sqldir && patch -p0 --force --quiet) < $f - else - echo "Patch $f would fail. Exiting." - exit 1 - fi -done +try_patches 1 # Remove files from the SQLite source tree that have been replaced by db. ( cd $sqldir/../adapter && diff --git a/dist/s_symlink b/dist/s_symlink index eae12232..503d40bd 100755 --- a/dist/s_symlink +++ b/dist/s_symlink @@ -9,6 +9,7 @@ build() (cd ../`dirname $1` && rm -f `basename $1` && ln -s $2 `basename $1`) } +build src/blob/tags ../../dist/tagdir/tags build src/btree/tags ../../dist/tagdir/tags build build_unix/tags ../dist/tagdir/tags build src/clib/tags ../../dist/tagdir/tags @@ -27,6 +28,7 @@ build examples/c/tags ../../dist/tagdir/tags build examples/cxx/tags ../../dist/tagdir/tags build src/fileops/tags ../../dist/tagdir/tags build src/hash/tags ../../dist/tagdir/tags +build src/heap/tags ../../dist/tagdir/tags build src/hmac/tags ../../dist/tagdir/tags build lang/hsearch/tags ../../dist/tagdir/tags build lang/java/libdb_java/tags ../../../dist/tagdir/tags diff --git a/dist/s_tags b/dist/s_tags index 7e72be7f..a7652381 100755 --- a/dist/s_tags +++ b/dist/s_tags @@ -6,6 +6,7 @@ cd tagdir files=`echo ../../src/dbinc/*.h \ ../../src/dbinc/*.in \ + ../../src/blob/*.[ch] \ ../../src/btree/*.[ch] \ ../../src/clib/*.[ch] \ ../../src/common/*.[ch] \ @@ -19,6 +20,7 @@ files=`echo ../../src/dbinc/*.h \ ../../src/env/*.[ch] \ ../../src/fileops/*.[ch] \ ../../src/hash/*.[ch] \ + ../../src/heap/*.[ch] \ ../../src/hmac/*.[ch] \ ../../src/hsearch/*.[ch] \ ../../src/lock/*.[ch] \ diff --git a/dist/s_test b/dist/s_test index e12b34e5..193689dc 100755 --- a/dist/s_test +++ b/dist/s_test @@ -27,6 +27,7 @@ trap 'rm -f $t; exit 0' 0 1 2 3 13 15 echo "global dict" && \ echo "global util_path" && \ echo "" && \ + echo "global is_aix_test" && \ echo "global is_freebsd_test" && \ echo "global is_hp_test" && \ echo "global is_linux_test" && \ @@ -63,6 +64,7 @@ cmp $t $f > /dev/null 2>&1 || echo "global dict" && \ echo "global util_path" && \ echo "" && \ + echo "global is_aix_test" && \ echo "global is_freebsd_test" && \ echo "global is_hp_test" && \ echo "global is_linux_test" && \ diff --git a/dist/s_vxworks b/dist/s_vxworks index a98cb85b..66a9adb4 100755 --- a/dist/s_vxworks +++ b/dist/s_vxworks @@ -23,7 +23,6 @@ n n i\\ \\ -/* Tornado 2 does not provide a standard C pre-processor #define. */\\ #ifndef __vxworks\\ #define __vxworks\\ #endif @@ -45,14 +44,15 @@ s/@u_int64_decl@/typedef unsigned long long u_int64_t;/ /@u_long_decl@/d /@u_short_decl@/d s/@uintmax_t_decl@/typedef unsigned long uintmax_t;/ -s/@uintptr_t_decl@/typedef unsigned long uintptr_t;/ +/@uintptr_t_decl@/d /@FILE_t_decl@/d /@off_t_decl@/d +s/@db_off_t_decl@/typedef int64_t db_off_t;/ /@pid_t_decl@/d /@size_t_decl@/d /@ssize_t_decl@/d /@time_t_decl@/d -s/@db_seq_decl@/typedef int db_seq_t;/ +s/@db_seq_decl@/typedef int64_t db_seq_t;/ s/@db_threadid_t_decl@/typedef uintmax_t db_threadid_t;/ s/@DB_VERSION_FAMILY@/$DB_VERSION_FAMILY/ s/@DB_VERSION_RELEASE@/$DB_VERSION_RELEASE/ @@ -368,128 +368,6 @@ util_one() echo "<END>" } -# Build VxWorks Tornado 2.0 project files for the utilities. -for i in $PROGRAM_LIST; do - case $i in - ex_access) - target=dbdemo - outdir=dbdemo - ;; - db_*) - target=$i - outdir=util - ;; - test_micro) - target=$i - outdir=test/micro - ;; - *) - target=$i - outdir=$i - ;; - esac - - (sed -e "s/__DB_APPLICATION_NAME__/$target/g" < vx_2.0/wpj.in - util_one $i) > $t - f=../build_vxworks/$outdir/${target}20.wpj - cmp $t $f > /dev/null 2>&1 || - (echo "Building $f" && rm -f $f && cp $t $f) - - (sed -e "s/__DB_APPLICATION_NAME__/$target/g" < vx_2.2/wpj.in - util_one $i) > $t - f=../build_vxworks/$outdir/${target}22.wpj - cmp $t $f > /dev/null 2>&1 || - (echo "Building $f" && rm -f $f && cp $t $f) -done - -# Build the list of "normal build" files VxWorks knows about. -sed -e '/^$/d' -e '/^[ #]/d' srcfiles.in | - egrep -w vx | - sed 's/[ ].*//' > $vxfilelist - -# Build the list of "small build" files VxWorks knows about. -sed -e '/^$/d' -e '/^[ #]/d' srcfiles.in | - egrep -w vxsmall | - sed 's/[ ].*//' > $vxsmallfiles - -# Build VxWorks Tornado 2.0 project files for the library itself. -for v in 0 2 ; do - # - # Build regular project files - # - (cat vx_2.${v}/BerkeleyDB.wpj - for i in `cat $vxfilelist`; do - o="<BEGIN> FILE_\$(PRJ_DIR)/../$i" - echo "${o}_dependDone" - echo "TRUE" - echo "<END>" - echo - echo "${o}_dependencies" - echo "\$(PRJ_DIR)/db_config.h \\" - echo " \$(PRJ_DIR)/db_int.h \\" - echo " \$(PRJ_DIR)/db.h" - echo "<END>" - echo - echo "${o}_objects" - echo "`basename $i .c`.o" - echo "<END>" - echo - echo "${o}_tool" - echo "C/C++ compiler" - echo "<END>" - echo - done - echo "<BEGIN> PROJECT_FILES" - sed -e '$!s/$/ \\/' \ - -e 's/^/$(PRJ_DIR)\/..\//' \ - -e '1!s/^/ /' < $vxfilelist - echo "<END>" - echo - echo "<BEGIN> userComments" - echo "BerkeleyDB" - echo "<END>") > $t - # - # Build small lib project files - # - (cat vx_2.${v}/BerkeleyDBsmall.wpj - for i in `cat $vxsmallfiles`; do - o="<BEGIN> FILE_\$(PRJ_DIR)/../$i" - echo "${o}_dependDone" - echo "TRUE" - echo "<END>" - echo - echo "${o}_dependencies" - echo "\$(PRJ_DIR)/db_config.h \\" - echo " \$(PRJ_DIR)/db_int.h \\" - echo " \$(PRJ_DIR)/db.h" - echo "<END>" - echo - echo "${o}_objects" - echo "`basename $i .c`.o" - echo "<END>" - echo - echo "${o}_tool" - echo "C/C++ compiler" - echo "<END>" - echo - done - echo "<BEGIN> PROJECT_FILES" - sed -e '$!s/$/ \\/' \ - -e 's/^/$(PRJ_DIR)\/..\//' \ - -e '1!s/^/ /' < $vxsmallfiles - echo "<END>" - echo - echo "<BEGIN> userComments" - echo "BerkeleyDB" - echo "<END>") > $u - f=../build_vxworks/BerkeleyDB2${v}.wpj - cmp $t $f > /dev/null 2>&1 || - (echo "Building $f" && rm -f $f && cp $t $f) - f=../build_vxworks/BerkeleyDB2${v}small.wpj - cmp $u $f > /dev/null 2>&1 || - (echo "Building $f" && rm -f $f && cp $u $f) -done - # vx6 -- # Generate a VxWorks 6.X Makefile. # @@ -535,6 +413,9 @@ vx6() # Build the list of "normal build" files VxWorks 6x knows about -- it's # the standard Vx list plus some additions. sed -e '/^$/d' -e '/^[ #]/d' srcfiles.in | + egrep -w vx | + sed 's/[ ].*//' > $vxfilelist +sed -e '/^$/d' -e '/^[ #]/d' srcfiles.in | egrep -w vx6 | sed 's/[ ].*//' >> $vxfilelist vx6 $vxfilelist > $t @@ -546,7 +427,7 @@ cmp $t $f > /dev/null 2>&1 || # the standard vxsmall list. sed -e '/^$/d' -e '/^[ #]/d' srcfiles.in | egrep -w vxsmall | - sed 's/[ ].*//' >> $vxfilelist + sed 's/[ ].*//' >> $vxsmallfiles vx6 $vxsmallfiles > $t f=../build_vxworks/Makefile.6x.small cmp $t $f > /dev/null 2>&1 || diff --git a/dist/s_windows b/dist/s_windows index 5e4d38ef..9e4c67fb 100755 --- a/dist/s_windows +++ b/dist/s_windows @@ -84,6 +84,7 @@ typedef u_int32_t uintptr_t;\\ typedef int64_t off_t; d } +s/@db_off_t_decl@/typedef int64_t db_off_t;/ /@platform_header@/{ i\\ /*\\ @@ -269,9 +270,14 @@ f=../build_windows/dbstl_common.h cmp $t $f > /dev/null 2>&1 || (echo "Building $f" && rm -f $f && cp $t $f) +# Copy in sqlite3.h. +f=../build_windows/sqlite3.h +cmp ../lang/sql/generated/sqlite3.h $f > /dev/null 2>&1 || + (echo "Building $f" && rm -f $f && cp ../lang/sql/generated/sqlite3.h $f) + # Copy in errno.h. f=../build_wince/errno.h cmp errno.h $f > /dev/null 2>&1 || (echo "Building $f" && rm -f $f && cp errno.h $f) - + rm -f $s $t diff --git a/dist/srcfiles.in b/dist/srcfiles.in index e3465f12..4905d996 100644 --- a/dist/srcfiles.in +++ b/dist/srcfiles.in @@ -14,6 +14,10 @@ # Each non-blank, non-comment line is of the form # filename module [ module ...] +src/blob/blob_fileops.c android vx vxsmall +src/blob/blob_page.c android vx vxsmall +src/blob/blob_stream.c android vx vxsmall +src/blob/blob_util.c android vx vxsmall src/btree/bt_compact.c android vx vxsmall src/btree/bt_compare.c android vx vxsmall src/btree/bt_compress.c android vx vxsmall @@ -72,7 +76,7 @@ src/clib/strcasecmp.c vx vxsmall src/clib/strdup.c vx vxsmall src/clib/strsep.c vx vxsmall src/common/clock.c android vx vxsmall -src/common/crypto_stub.c android vxsmall +src/common/crypto_stub.c vxsmall src/common/db_byteorder.c android vx vxsmall src/common/db_compint.c android vx vxsmall src/common/db_err.c android vx vxsmall @@ -96,6 +100,7 @@ src/crypto/rijndael/rijndael-api-fst.c vx lang/cxx/cxx_channel.cpp vx6 lang/cxx/cxx_db.cpp vx6 lang/cxx/cxx_dbc.cpp vx6 +lang/cxx/cxx_dbstream.cpp vx6 lang/cxx/cxx_dbt.cpp vx6 lang/cxx/cxx_env.cpp vx6 lang/cxx/cxx_except.cpp vx6 @@ -199,6 +204,7 @@ src/heap/heap_rec.c vx src/heap/heap_reclaim.c vx src/heap/heap_stat.c vx src/heap/heap_stub.c android vxsmall +src/heap/heap_upgrade.c vx src/heap/heap_verify.c vx src/hmac/hmac.c android vx vxsmall src/hmac/sha1.c android vx vxsmall @@ -244,7 +250,6 @@ src/mp/mp_sync.c android vx vxsmall src/mp/mp_trickle.c android vx vxsmall src/mutex/mut_alloc.c android vx vxsmall src/mutex/mut_failchk.c android vx vxsmall -src/mutex/mut_fcntl.c src/mutex/mut_method.c android vx vxsmall src/mutex/mut_region.c android vx vxsmall src/mutex/mut_stat.c android vx vxsmall @@ -271,6 +276,7 @@ src/os/os_open.c android vx vxsmall src/os/os_path.c android vx vxsmall src/os/os_pid.c android vx vxsmall src/os/os_rename.c android vx vxsmall +src/os/os_rmdir.c android vx vxsmall src/os/os_root.c android vx vxsmall src/os/os_rpath.c android src/os/os_rw.c android vx vxsmall diff --git a/dist/template/rec_dbreg b/dist/template/rec_dbreg index f5657967..8290bb27 100644 --- a/dist/template/rec_dbreg +++ b/dist/template/rec_dbreg @@ -70,3 +70,68 @@ __dbreg_register_recover(env, dbtp, lsnp, op, info) out: REC_CLOSE; } +/* + * __dbreg_register_recover -- + * Recovery function for register. + * + * PUBLIC: int __dbreg_register_recover + * PUBLIC: __P((env *, DBT *, DB_LSN *, db_recops, void *)); + */ +int +__dbreg_register_recover(env, dbtp, lsnp, op, info) + env *env; + DBT *dbtp; + DB_LSN *lsnp; + db_recops op; + void *info; +{ + __dbreg_register_args *argp; + DB *file_dbp; + DBC *dbc; + DB_MPOOLFILE *mpf; + DB_THREAD_INFO *ip; + PAGE *pagep; + int cmp_n, cmp_p, modified, ret; + + ip = ((DB_TXNHEAD *)info)->thread_info; + + REC_PRINT(__dbreg_register_print); + REC_INTRO(__dbreg_register_read, ip, 0); + + if ((ret = mpf->get(mpf, &argp->pgno, 0, &pagep)) != 0) + if (DB_REDO(op)) { + if ((ret = mpf->get(mpf, + &argp->pgno, DB_MPOOL_CREATE, &pagep)) != 0) + goto out; + } else { + *lsnp = argp->prev_lsn; + ret = 0; + goto out; + } + + modified = 0; + cmp_n = log_compare(lsnp, &LSN(pagep)); + + /* + * Use this when there is something like "pagelsn" in the argp + * structure. Sometimes, you might need to compare meta-data + * lsn's instead. + * + * cmp_p = log_compare(&LSN(pagep), argp->pagelsn); + */ + if (cmp_p == 0 && DB_REDO(op)) { + /* Need to redo update described. */ + modified = 1; + } else if (cmp_n == 0 && !DB_REDO(op)) { + /* Need to undo update described. */ + modified = 1; + } + if (ret = mpf->put(mpf, pagep, modified ? DB_MPOOL_DIRTY : 0)) + goto out; + + *lsnp = argp->prev_lsn; + ret = 0; + +out: REC_CLOSE; +} + diff --git a/dist/template/rec_fileops b/dist/template/rec_fileops index c2c770d8..384d333c 100644 --- a/dist/template/rec_fileops +++ b/dist/template/rec_fileops @@ -136,6 +136,71 @@ out: REC_CLOSE; } /* + * __fop_create_recover -- + * Recovery function for create. + * + * PUBLIC: int __fop_create_recover + * PUBLIC: __P((env *, DBT *, DB_LSN *, db_recops, void *)); + */ +int +__fop_create_recover(env, dbtp, lsnp, op, info) + env *env; + DBT *dbtp; + DB_LSN *lsnp; + db_recops op; + void *info; +{ + __fop_create_args *argp; + DB *file_dbp; + DBC *dbc; + DB_MPOOLFILE *mpf; + DB_THREAD_INFO *ip; + PAGE *pagep; + int cmp_n, cmp_p, modified, ret; + + ip = ((DB_TXNHEAD *)info)->thread_info; + + REC_PRINT(__fop_create_print); + REC_INTRO(__fop_create_read, ip, 0); + + if ((ret = mpf->get(mpf, &argp->pgno, 0, &pagep)) != 0) + if (DB_REDO(op)) { + if ((ret = mpf->get(mpf, + &argp->pgno, DB_MPOOL_CREATE, &pagep)) != 0) + goto out; + } else { + *lsnp = argp->prev_lsn; + ret = 0; + goto out; + } + + modified = 0; + cmp_n = log_compare(lsnp, &LSN(pagep)); + + /* + * Use this when there is something like "pagelsn" in the argp + * structure. Sometimes, you might need to compare meta-data + * lsn's instead. + * + * cmp_p = log_compare(&LSN(pagep), argp->pagelsn); + */ + if (cmp_p == 0 && DB_REDO(op)) { + /* Need to redo update described. */ + modified = 1; + } else if (cmp_n == 0 && !DB_REDO(op)) { + /* Need to undo update described. */ + modified = 1; + } + if (ret = mpf->put(mpf, pagep, modified ? DB_MPOOL_DIRTY : 0)) + goto out; + + *lsnp = argp->prev_lsn; + ret = 0; + +out: REC_CLOSE; +} + +/* * __fop_remove_recover -- * Recovery function for remove. * @@ -201,6 +266,136 @@ out: REC_CLOSE; } /* + * __fop_remove_recover -- + * Recovery function for remove. + * + * PUBLIC: int __fop_remove_recover + * PUBLIC: __P((env *, DBT *, DB_LSN *, db_recops, void *)); + */ +int +__fop_remove_recover(env, dbtp, lsnp, op, info) + env *env; + DBT *dbtp; + DB_LSN *lsnp; + db_recops op; + void *info; +{ + __fop_remove_args *argp; + DB *file_dbp; + DBC *dbc; + DB_MPOOLFILE *mpf; + DB_THREAD_INFO *ip; + PAGE *pagep; + int cmp_n, cmp_p, modified, ret; + + ip = ((DB_TXNHEAD *)info)->thread_info; + + REC_PRINT(__fop_remove_print); + REC_INTRO(__fop_remove_read, ip, 0); + + if ((ret = mpf->get(mpf, &argp->pgno, 0, &pagep)) != 0) + if (DB_REDO(op)) { + if ((ret = mpf->get(mpf, + &argp->pgno, DB_MPOOL_CREATE, &pagep)) != 0) + goto out; + } else { + *lsnp = argp->prev_lsn; + ret = 0; + goto out; + } + + modified = 0; + cmp_n = log_compare(lsnp, &LSN(pagep)); + + /* + * Use this when there is something like "pagelsn" in the argp + * structure. Sometimes, you might need to compare meta-data + * lsn's instead. + * + * cmp_p = log_compare(&LSN(pagep), argp->pagelsn); + */ + if (cmp_p == 0 && DB_REDO(op)) { + /* Need to redo update described. */ + modified = 1; + } else if (cmp_n == 0 && !DB_REDO(op)) { + /* Need to undo update described. */ + modified = 1; + } + if (ret = mpf->put(mpf, pagep, modified ? DB_MPOOL_DIRTY : 0)) + goto out; + + *lsnp = argp->prev_lsn; + ret = 0; + +out: REC_CLOSE; +} + +/* + * __fop_write_recover -- + * Recovery function for write. + * + * PUBLIC: int __fop_write_recover + * PUBLIC: __P((env *, DBT *, DB_LSN *, db_recops, void *)); + */ +int +__fop_write_recover(env, dbtp, lsnp, op, info) + env *env; + DBT *dbtp; + DB_LSN *lsnp; + db_recops op; + void *info; +{ + __fop_write_args *argp; + DB *file_dbp; + DBC *dbc; + DB_MPOOLFILE *mpf; + DB_THREAD_INFO *ip; + PAGE *pagep; + int cmp_n, cmp_p, modified, ret; + + ip = ((DB_TXNHEAD *)info)->thread_info; + + REC_PRINT(__fop_write_print); + REC_INTRO(__fop_write_read, ip, 0); + + if ((ret = mpf->get(mpf, &argp->pgno, 0, &pagep)) != 0) + if (DB_REDO(op)) { + if ((ret = mpf->get(mpf, + &argp->pgno, DB_MPOOL_CREATE, &pagep)) != 0) + goto out; + } else { + *lsnp = argp->prev_lsn; + ret = 0; + goto out; + } + + modified = 0; + cmp_n = log_compare(lsnp, &LSN(pagep)); + + /* + * Use this when there is something like "pagelsn" in the argp + * structure. Sometimes, you might need to compare meta-data + * lsn's instead. + * + * cmp_p = log_compare(&LSN(pagep), argp->pagelsn); + */ + if (cmp_p == 0 && DB_REDO(op)) { + /* Need to redo update described. */ + modified = 1; + } else if (cmp_n == 0 && !DB_REDO(op)) { + /* Need to undo update described. */ + modified = 1; + } + if (ret = mpf->put(mpf, pagep, modified ? DB_MPOOL_DIRTY : 0)) + goto out; + + *lsnp = argp->prev_lsn; + ret = 0; + +out: REC_CLOSE; +} + +/* * __fop_write_recover -- * Recovery function for write. * @@ -331,6 +526,201 @@ out: REC_CLOSE; } /* + * __fop_write_file_recover -- + * Recovery function for write_file. + * + * PUBLIC: int __fop_write_file_recover + * PUBLIC: __P((env *, DBT *, DB_LSN *, db_recops, void *)); + */ +int +__fop_write_file_recover(env, dbtp, lsnp, op, info) + env *env; + DBT *dbtp; + DB_LSN *lsnp; + db_recops op; + void *info; +{ + __fop_write_file_args *argp; + DB *file_dbp; + DBC *dbc; + DB_MPOOLFILE *mpf; + DB_THREAD_INFO *ip; + PAGE *pagep; + int cmp_n, cmp_p, modified, ret; + + ip = ((DB_TXNHEAD *)info)->thread_info; + + REC_PRINT(__fop_write_file_print); + REC_INTRO(__fop_write_file_read, ip, 0); + + if ((ret = mpf->get(mpf, &argp->pgno, 0, &pagep)) != 0) + if (DB_REDO(op)) { + if ((ret = mpf->get(mpf, + &argp->pgno, DB_MPOOL_CREATE, &pagep)) != 0) + goto out; + } else { + *lsnp = argp->prev_lsn; + ret = 0; + goto out; + } + + modified = 0; + cmp_n = log_compare(lsnp, &LSN(pagep)); + + /* + * Use this when there is something like "pagelsn" in the argp + * structure. Sometimes, you might need to compare meta-data + * lsn's instead. + * + * cmp_p = log_compare(&LSN(pagep), argp->pagelsn); + */ + if (cmp_p == 0 && DB_REDO(op)) { + /* Need to redo update described. */ + modified = 1; + } else if (cmp_n == 0 && !DB_REDO(op)) { + /* Need to undo update described. */ + modified = 1; + } + if (ret = mpf->put(mpf, pagep, modified ? DB_MPOOL_DIRTY : 0)) + goto out; + + *lsnp = argp->prev_lsn; + ret = 0; + +out: REC_CLOSE; +} + +/* + * __fop_write_file_recover -- + * Recovery function for write_file. + * + * PUBLIC: int __fop_write_file_recover + * PUBLIC: __P((env *, DBT *, DB_LSN *, db_recops, void *)); + */ +int +__fop_write_file_recover(env, dbtp, lsnp, op, info) + env *env; + DBT *dbtp; + DB_LSN *lsnp; + db_recops op; + void *info; +{ + __fop_write_file_args *argp; + DB *file_dbp; + DBC *dbc; + DB_MPOOLFILE *mpf; + DB_THREAD_INFO *ip; + PAGE *pagep; + int cmp_n, cmp_p, modified, ret; + + ip = ((DB_TXNHEAD *)info)->thread_info; + + REC_PRINT(__fop_write_file_print); + REC_INTRO(__fop_write_file_read, ip, 0); + + if ((ret = mpf->get(mpf, &argp->pgno, 0, &pagep)) != 0) + if (DB_REDO(op)) { + if ((ret = mpf->get(mpf, + &argp->pgno, DB_MPOOL_CREATE, &pagep)) != 0) + goto out; + } else { + *lsnp = argp->prev_lsn; + ret = 0; + goto out; + } + + modified = 0; + cmp_n = log_compare(lsnp, &LSN(pagep)); + + /* + * Use this when there is something like "pagelsn" in the argp + * structure. Sometimes, you might need to compare meta-data + * lsn's instead. + * + * cmp_p = log_compare(&LSN(pagep), argp->pagelsn); + */ + if (cmp_p == 0 && DB_REDO(op)) { + /* Need to redo update described. */ + modified = 1; + } else if (cmp_n == 0 && !DB_REDO(op)) { + /* Need to undo update described. */ + modified = 1; + } + if (ret = mpf->put(mpf, pagep, modified ? DB_MPOOL_DIRTY : 0)) + goto out; + + *lsnp = argp->prev_lsn; + ret = 0; + +out: REC_CLOSE; +} + +/* + * __fop_rename_recover -- + * Recovery function for rename. + * + * PUBLIC: int __fop_rename_recover + * PUBLIC: __P((env *, DBT *, DB_LSN *, db_recops, void *)); + */ +int +__fop_rename_recover(env, dbtp, lsnp, op, info) + env *env; + DBT *dbtp; + DB_LSN *lsnp; + db_recops op; + void *info; +{ + __fop_rename_noundo_args *argp; + DB *file_dbp; + DBC *dbc; + DB_MPOOLFILE *mpf; + DB_THREAD_INFO *ip; + PAGE *pagep; + int cmp_n, cmp_p, modified, ret; + + ip = ((DB_TXNHEAD *)info)->thread_info; + + REC_PRINT(__fop_rename_noundo_print); + REC_INTRO(__fop_rename_noundo_read, ip, 0); + + if ((ret = mpf->get(mpf, &argp->pgno, 0, &pagep)) != 0) + if (DB_REDO(op)) { + if ((ret = mpf->get(mpf, + &argp->pgno, DB_MPOOL_CREATE, &pagep)) != 0) + goto out; + } else { + *lsnp = argp->prev_lsn; + ret = 0; + goto out; + } + + modified = 0; + cmp_n = log_compare(lsnp, &LSN(pagep)); + + /* + * Use this when there is something like "pagelsn" in the argp + * structure. Sometimes, you might need to compare meta-data + * lsn's instead. + * + * cmp_p = log_compare(&LSN(pagep), argp->pagelsn); + */ + if (cmp_p == 0 && DB_REDO(op)) { + /* Need to redo update described. */ + modified = 1; + } else if (cmp_n == 0 && !DB_REDO(op)) { + /* Need to undo update described. */ + modified = 1; + } + if (ret = mpf->put(mpf, pagep, modified ? DB_MPOOL_DIRTY : 0)) + goto out; + + *lsnp = argp->prev_lsn; + ret = 0; + +out: REC_CLOSE; +} + +/* * __fop_rename_recover -- * Recovery function for rename. * @@ -525,3 +915,68 @@ __fop_file_remove_recover(env, dbtp, lsnp, op, info) out: REC_CLOSE; } +/* + * __fop_file_remove_recover -- + * Recovery function for file_remove. + * + * PUBLIC: int __fop_file_remove_recover + * PUBLIC: __P((env *, DBT *, DB_LSN *, db_recops, void *)); + */ +int +__fop_file_remove_recover(env, dbtp, lsnp, op, info) + env *env; + DBT *dbtp; + DB_LSN *lsnp; + db_recops op; + void *info; +{ + __fop_file_remove_args *argp; + DB *file_dbp; + DBC *dbc; + DB_MPOOLFILE *mpf; + DB_THREAD_INFO *ip; + PAGE *pagep; + int cmp_n, cmp_p, modified, ret; + + ip = ((DB_TXNHEAD *)info)->thread_info; + + REC_PRINT(__fop_file_remove_print); + REC_INTRO(__fop_file_remove_read, ip, 0); + + if ((ret = mpf->get(mpf, &argp->pgno, 0, &pagep)) != 0) + if (DB_REDO(op)) { + if ((ret = mpf->get(mpf, + &argp->pgno, DB_MPOOL_CREATE, &pagep)) != 0) + goto out; + } else { + *lsnp = argp->prev_lsn; + ret = 0; + goto out; + } + + modified = 0; + cmp_n = log_compare(lsnp, &LSN(pagep)); + + /* + * Use this when there is something like "pagelsn" in the argp + * structure. Sometimes, you might need to compare meta-data + * lsn's instead. + * + * cmp_p = log_compare(&LSN(pagep), argp->pagelsn); + */ + if (cmp_p == 0 && DB_REDO(op)) { + /* Need to redo update described. */ + modified = 1; + } else if (cmp_n == 0 && !DB_REDO(op)) { + /* Need to undo update described. */ + modified = 1; + } + if (ret = mpf->put(mpf, pagep, modified ? DB_MPOOL_DIRTY : 0)) + goto out; + + *lsnp = argp->prev_lsn; + ret = 0; + +out: REC_CLOSE; +} + diff --git a/dist/template/rec_heap b/dist/template/rec_heap index b6dc7a3b..75c424d2 100644 --- a/dist/template/rec_heap +++ b/dist/template/rec_heap @@ -71,6 +71,136 @@ out: REC_CLOSE; } /* + * __heap_addrem_recover -- + * Recovery function for addrem. + * + * PUBLIC: int __heap_addrem_recover + * PUBLIC: __P((env *, DBT *, DB_LSN *, db_recops, void *)); + */ +int +__heap_addrem_recover(env, dbtp, lsnp, op, info) + env *env; + DBT *dbtp; + DB_LSN *lsnp; + db_recops op; + void *info; +{ + __heap_addrem_args *argp; + DB *file_dbp; + DBC *dbc; + DB_MPOOLFILE *mpf; + DB_THREAD_INFO *ip; + PAGE *pagep; + int cmp_n, cmp_p, modified, ret; + + ip = ((DB_TXNHEAD *)info)->thread_info; + + REC_PRINT(__heap_addrem_print); + REC_INTRO(__heap_addrem_read, ip, 0); + + if ((ret = mpf->get(mpf, &argp->pgno, 0, &pagep)) != 0) + if (DB_REDO(op)) { + if ((ret = mpf->get(mpf, + &argp->pgno, DB_MPOOL_CREATE, &pagep)) != 0) + goto out; + } else { + *lsnp = argp->prev_lsn; + ret = 0; + goto out; + } + + modified = 0; + cmp_n = log_compare(lsnp, &LSN(pagep)); + + /* + * Use this when there is something like "pagelsn" in the argp + * structure. Sometimes, you might need to compare meta-data + * lsn's instead. + * + * cmp_p = log_compare(&LSN(pagep), argp->pagelsn); + */ + if (cmp_p == 0 && DB_REDO(op)) { + /* Need to redo update described. */ + modified = 1; + } else if (cmp_n == 0 && !DB_REDO(op)) { + /* Need to undo update described. */ + modified = 1; + } + if (ret = mpf->put(mpf, pagep, modified ? DB_MPOOL_DIRTY : 0)) + goto out; + + *lsnp = argp->prev_lsn; + ret = 0; + +out: REC_CLOSE; +} + +/* + * __heap_addrem_recover -- + * Recovery function for addrem. + * + * PUBLIC: int __heap_addrem_recover + * PUBLIC: __P((env *, DBT *, DB_LSN *, db_recops, void *)); + */ +int +__heap_addrem_recover(env, dbtp, lsnp, op, info) + env *env; + DBT *dbtp; + DB_LSN *lsnp; + db_recops op; + void *info; +{ + __heap_addrem_args *argp; + DB *file_dbp; + DBC *dbc; + DB_MPOOLFILE *mpf; + DB_THREAD_INFO *ip; + PAGE *pagep; + int cmp_n, cmp_p, modified, ret; + + ip = ((DB_TXNHEAD *)info)->thread_info; + + REC_PRINT(__heap_addrem_print); + REC_INTRO(__heap_addrem_read, ip, 0); + + if ((ret = mpf->get(mpf, &argp->pgno, 0, &pagep)) != 0) + if (DB_REDO(op)) { + if ((ret = mpf->get(mpf, + &argp->pgno, DB_MPOOL_CREATE, &pagep)) != 0) + goto out; + } else { + *lsnp = argp->prev_lsn; + ret = 0; + goto out; + } + + modified = 0; + cmp_n = log_compare(lsnp, &LSN(pagep)); + + /* + * Use this when there is something like "pagelsn" in the argp + * structure. Sometimes, you might need to compare meta-data + * lsn's instead. + * + * cmp_p = log_compare(&LSN(pagep), argp->pagelsn); + */ + if (cmp_p == 0 && DB_REDO(op)) { + /* Need to redo update described. */ + modified = 1; + } else if (cmp_n == 0 && !DB_REDO(op)) { + /* Need to undo update described. */ + modified = 1; + } + if (ret = mpf->put(mpf, pagep, modified ? DB_MPOOL_DIRTY : 0)) + goto out; + + *lsnp = argp->prev_lsn; + ret = 0; + +out: REC_CLOSE; +} + +/* * __heap_pg_alloc_recover -- * Recovery function for pg_alloc. * diff --git a/dist/validate/s_chk_comma.c b/dist/validate/s_chk_comma.c index d14219f8..2a8cb43c 100644 --- a/dist/validate/s_chk_comma.c +++ b/dist/validate/s_chk_comma.c @@ -1,7 +1,7 @@ /*- * See the file LICENSE for redistribution information. * - * Copyright (c) 2002, 2012 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2015 Oracle and/or its affiliates. All rights reserved. */ #include <sys/types.h> diff --git a/dist/validate/s_chk_flags.c b/dist/validate/s_chk_flags.c index 54645e40..a2ada6c1 100644 --- a/dist/validate/s_chk_flags.c +++ b/dist/validate/s_chk_flags.c @@ -1,7 +1,7 @@ /*- * See the file LICENSE for redistribution information. * - * Copyright (c) 2002, 2012 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2015 Oracle and/or its affiliates. All rights reserved. */ #include <sys/types.h> diff --git a/dist/validate/s_chk_logverify.c b/dist/validate/s_chk_logverify.c index e1134ca5..2cb29106 100644 --- a/dist/validate/s_chk_logverify.c +++ b/dist/validate/s_chk_logverify.c @@ -1,7 +1,7 @@ /*- * See the file LICENSE for redistribution information. * - * Copyright (c) 2009, 2012 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2009, 2015 Oracle and/or its affiliates. All rights reserved. * * $Id$ */ diff --git a/dist/validate/s_chk_runrecovery b/dist/validate/s_chk_runrecovery index 384666fd..6bc9d402 100644 --- a/dist/validate/s_chk_runrecovery +++ b/dist/validate/s_chk_runrecovery @@ -20,10 +20,12 @@ egrep DB_RUNRECOVERY $s/*/*.c | -e '/db_dispatch.c:.*if (ret == DB_RUNRECOVERY/d' \ -e '/db_err.c:/d' \ -e '/env_open.c:.*ret = DB_RUNRECOVERY;/d' \ + -e '/env_open.c:.*ret == DB_RUNRECOVERY/d'\ -e '/os_errno.c:.*evalue == DB_RUNRECOVERY/d' \ -e '/mut_fcntl.c:.*return (DB_RUNRECOVERY);/d' \ -e '/mut_pthread.c:.*return (DB_RUNRECOVERY);/d' \ - -e '/mut_tas.c:.*return (DB_RUNRECOVERY);/d' \ + -e '/mut_pthread.c:.*ret = DB_RUNRECOVERY;/d' \ + -e '/mut_tas.c:.*DB_RUNRECOVERY)));/d' \ -e '/mut_tas.c:.*Possibly DB_RUNRECOVERY if/d' \ -e '/mut_win32.c:.*return (DB_RUNRECOVERY);/d' \ -e '/mut_win32.c:.*ret = DB_RUNRECOVERY;/d' \ diff --git a/dist/validate/s_chk_stats b/dist/validate/s_chk_stats index d7c5c5f3..091ed20d 100644 --- a/dist/validate/s_chk_stats +++ b/dist/validate/s_chk_stats @@ -42,6 +42,7 @@ qs_metaflags qs_ndata st_hash_max_nowait st_filefail_cleanups +st_log_futuredup END_OF_IGNORE # Check to make sure the elements of a structure from db.h appear in diff --git a/dist/validate/s_chk_vxworks b/dist/validate/s_chk_vxworks index 091c4aa5..6b36bd7d 100644 --- a/dist/validate/s_chk_vxworks +++ b/dist/validate/s_chk_vxworks @@ -69,7 +69,7 @@ done echo "int" echo "main(int argc, char *argv[])" echo "{" -echo "int r;" +echo "int r=0;" for i in $SYMBOL_LIST; do echo "r += ${i}_main(argc, argv);" done diff --git a/dist/vx_6/Makefile.1 b/dist/vx_6/Makefile.1 index 45a12088..b1042a63 100644 --- a/dist/vx_6/Makefile.1 +++ b/dist/vx_6/Makefile.1 @@ -50,7 +50,7 @@ TOOL_FAMILY = diab TOOL = diabS TOOL_PATH = CC_ARCH_SPEC = -tX86LH:vxworks66 -VXVER := vxworks-6.8 +VXVER := vxworks-6.9 LIBPATH = LIBS = -lstlstd diff --git a/dist/vx_config.in b/dist/vx_config.in index a278386d..36e5efdd 100644 --- a/dist/vx_config.in +++ b/dist/vx_config.in @@ -92,6 +92,10 @@ /* Define to 1 if building the DBM API. */ /* #undef HAVE_DBM */ +/* Define to 1 if you want a version that records extra information about + errors. */ +/* #undef HAVE_ERROR_HISTORY */ + /* Define to 1 if you have the `directio' function. */ /* #undef HAVE_DIRECTIO */ @@ -111,6 +115,9 @@ /* Define to 1 if you have EXIT_SUCCESS/EXIT_FAILURE #defines. */ #define HAVE_EXIT_SUCCESS 1 +/* Define to 1 for failchk to inform all waiting threads about crashes. */ +/* #undef HAVE_FAILCHK_BROADCAST */ + /* Define to 1 if you have the `fchmod' function. */ /* #undef HAVE_FCHMOD */ @@ -180,6 +187,9 @@ /* Define to 1 if you have the `hstrerror' function. */ /* #undef HAVE_HSTRERROR */ +/* Define to 1 if you have the `initstate_r' function. */ +/* #undef HAVE_INITSTATE_R */ + /* Define to 1 if you have the <inttypes.h> header file. */ /* #undef HAVE_INTTYPES_H */ @@ -201,6 +211,9 @@ /* Define to 1 if you have the `localtime' function. */ #define HAVE_LOCALTIME 1 +/* Define to 1 if you have the `localtime_r' function. */ +/* #undef HAVE_LOCALTIME_R */ + /* Define to 1 if you want to enable log checksums. */ #define HAVE_LOG_CHECKSUM 1 @@ -374,6 +387,15 @@ pthread_cond_t. */ /* #undef HAVE_PTHREAD_COND_REINIT_OKAY */ +/* Define to 1 if you have the `pthread_getspecific' function. */ +/* #undef HAVE_PTHREAD_GETSPECIFIC */ + +/* Define to 1 if you have the `pthread_key_create' function. */ +/* #undef HAVE_PTHREAD_KEY_CREATE */ + +/* Define to 1 if you have the `pthread_once' function. */ +/* #undef HAVE_PTHREAD_ONCE */ + /* Define to 1 if it is OK to initialize an already initialized pthread_rwlock_t. */ /* #undef HAVE_PTHREAD_RWLOCK_REINIT_OKAY */ @@ -381,6 +403,9 @@ /* Define to 1 if you have the `pthread_self' function. */ /* #undef HAVE_PTHREAD_SELF */ +/* Define to 1 if you have the `pthread_setspecific' function. */ +/* #undef HAVE_PTHREAD_SETSPECIFIC */ + /* Define to 1 if you have the `pthread_yield' function. */ /* #undef HAVE_PTHREAD_YIELD */ @@ -405,6 +430,9 @@ /* Define to 1 if you have the `random' function. */ /* #undef HAVE_RANDOM */ +/* Define to 1 if you have the `random_r' function. */ +/* #undef HAVE_RANDOM_R */ + /* Define to 1 if building replication support. */ #define HAVE_REPLICATION 1 @@ -441,6 +469,9 @@ /* Define to 1 if you have the `snprintf' function. */ /* #undef HAVE_SNPRINTF */ +/* Define to 1 if you have the `srandom_r' function. */ +/* #undef HAVE_SRANDOM_R */ + /* Define to 1 if you have the `stat' function. */ #define HAVE_STAT 1 @@ -596,6 +627,9 @@ /* The size of a `long long', as computed by sizeof. */ /* #undef SIZEOF_LONG_LONG */ +/* The size of `off_t', as computed by sizeof. */ +/* #undef SIZEOF_OFF_T */ + /* The size of a `short', as computed by sizeof. */ /* #undef SIZEOF_SHORT */ diff --git a/dist/vx_setup/LICENSE.TXT b/dist/vx_setup/LICENSE.TXT index c383b81b..152a8c11 100644 --- a/dist/vx_setup/LICENSE.TXT +++ b/dist/vx_setup/LICENSE.TXT @@ -1,2 +1,2 @@ -Copyright (c) 1996, 2012 Oracle and/or its affiliates. All rights reserved. +Copyright (c) 1996, 2015 Oracle and/or its affiliates. All rights reserved. See the file LICENSE for redistribution information. diff --git a/dist/win_config.in b/dist/win_config.in index abb90223..ce0767f6 100644 --- a/dist/win_config.in +++ b/dist/win_config.in @@ -89,6 +89,17 @@ /* Define to 1 if building the DBM API. */ #define HAVE_DBM 1 +/* Define to 1 if you want a version that records extra information about + errors. */ +/* #undef HAVE_ERROR_HISTORY */ + +/* Define to 1 if you have the `directio' function. */ +/* #undef HAVE_DIRECTIO */ + +/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'. + */ +#define HAVE_DIRENT_H 1 + /* Define to 1 if you have the `directio' function. */ /* #undef HAVE_DIRECTIO */ @@ -108,6 +119,9 @@ /* Define to 1 if you have EXIT_SUCCESS/EXIT_FAILURE #defines. */ #define HAVE_EXIT_SUCCESS 1 +/* Define to 1 for failchk to inform all waiting threads about crashes. */ +/* #undef HAVE_FAILCHK_BROADCAST */ + /* Define to 1 if you have the `fchmod' function. */ /* #undef HAVE_FCHMOD */ @@ -185,6 +199,9 @@ /* Define to 1 if you have the `hstrerror' function. */ /* #undef HAVE_HSTRERROR */ +/* Define to 1 if you have the `initstate_r' function. */ +/* #undef HAVE_INITSTATE_R */ + /* Define to 1 if you have the <inttypes.h> header file. */ /* #undef HAVE_INTTYPES_H */ @@ -203,6 +220,9 @@ /* Define to 1 if you have the `localtime' function. */ #define HAVE_LOCALTIME 1 +/* Define to 1 if you have the `localtime_r' function. */ +/* #undef HAVE_LOCALTIME_R */ + /* Define to 1 to enable log checksums. */ #define HAVE_LOG_CHECKSUM 1 @@ -379,6 +399,15 @@ pthread_cond_t. */ /* #undef HAVE_PTHREAD_COND_REINIT_OKAY */ +/* Define to 1 if you have the `pthread_getspecific' function. */ +/* #undef HAVE_PTHREAD_GETSPECIFIC */ + +/* Define to 1 if you have the `pthread_key_create' function. */ +/* #undef HAVE_PTHREAD_KEY_CREATE */ + +/* Define to 1 if you have the `pthread_once' function. */ +/* #undef HAVE_PTHREAD_ONCE */ + /* Define to 1 if it is OK to initialize an already initialized pthread_rwlock_t. */ /* #undef HAVE_PTHREAD_RWLOCK_REINIT_OKAY */ @@ -386,6 +415,9 @@ /* Define to 1 if you have the `pthread_self' function. */ /* #undef HAVE_PTHREAD_SELF */ +/* Define to 1 if you have the `pthread_setspecific' function. */ +/* #undef HAVE_PTHREAD_SETSPECIFIC */ + /* Define to 1 if you have the `pthread_yield' function. */ /* #undef HAVE_PTHREAD_YIELD */ @@ -412,6 +444,9 @@ /* Define to 1 if you have the `random' function. */ /* #undef HAVE_RANDOM */ +/* Define to 1 if you have the `random_r' function. */ +/* #undef HAVE_RANDOM_R / + /* Define to 1 if building replication support. */ #ifndef HAVE_SMALLBUILD #define HAVE_REPLICATION 1 @@ -452,6 +487,9 @@ /* Define to 1 if you have the `snprintf' function. */ #define HAVE_SNPRINTF 1 +/* Define to 1 if you have the `srandom_r' function. */ +/* #undef HAVE_SRANDOM_R */ + /* Define to 1 if you have the `stat' function. */ #define HAVE_STAT 1 @@ -615,6 +653,9 @@ /* The size of a `long long', as computed by sizeof. */ /* #undef SIZEOF_LONG_LONG */ +/* The size of `off_t', as computed by sizeof. */ +/* #undef SIZEOF_OFF_T */ + /* The size of a `short', as computed by sizeof. */ /* #undef SIZEOF_SHORT */ diff --git a/dist/win_exports.in b/dist/win_exports.in index 8a57ba68..a286a5a4 100644 --- a/dist/win_exports.in +++ b/dist/win_exports.in @@ -82,9 +82,12 @@ __os_read db db_small __os_realloc db db_small __os_rename db db_small __os_strdup db db_small +__os_support_direct_io db db_small __os_umalloc db db_small __os_unlink db db_small __os_write db db_small +__repmgr_get_incoming_queue_fullevent db db_small +__repmgr_get_incoming_queue_redzone db db_small __txn_id_set db db_small # These are needed for linking tools or java. @@ -162,17 +165,25 @@ __db_util_logset db db_small __db_util_siginit db db_small __db_util_sigresend db db_small __db_verify_internal db db_small -__dbreg_register_desc db db_small +__dbreg_register_desc db db_small +__dbreg_register_42_desc db db_small __dbt_usercopy db db_small __dbt_userfree db db_small -__fop_create_42_desc db db_small +__fop_create_42_desc db db_small +__fop_create_60_desc db db_small __fop_create_desc db db_small -__fop_file_remove_desc db db_small +__fop_file_remove_60_desc db db_small +__fop_file_remove_desc db db_small +__fop_remove_60_desc db db_small __fop_remove_desc db db_small -__fop_rename_42_desc db db_small -__fop_rename_desc db db_small -__fop_write_42_desc db db_small -__fop_write_desc db db_small +__fop_rename_42_desc db db_small +__fop_rename_60_desc db db_small +__fop_rename_desc db db_small +__fop_write_42_desc db db_small +__fop_write_60_desc db db_small +__fop_write_desc db db_small +__fop_write_file_60_desc db db_small +__fop_write_file_desc db db_small __ham_changeslot_desc db __ham_chgpg_desc db __ham_contract_desc db @@ -192,9 +203,10 @@ __ham_release_meta db __ham_replace_42_desc db __ham_replace_desc db __ham_splitdata_desc db +__heap_addrem_60_desc db +__heap_addrem_50_desc db __heap_addrem_desc db __heap_exist db db_small -__heap_init_print db db_small __heap_pg_alloc_desc db __heap_trunc_meta_desc db __heap_trunc_page_desc db @@ -248,3 +260,4 @@ __txn_xa_regop_42_desc db db_small # These are needed for internal test programs. __repmgr_getaddr db +__db_ctimespec db diff --git a/dist/win_projects/db.projects b/dist/win_projects/db.projects index a933539c..0773eadb 100644 --- a/dist/win_projects/db.projects +++ b/dist/win_projects/db.projects @@ -14,6 +14,7 @@ db_printlog db_recover db_replicate db_repsite +db_reptest db_small db_sql db_sql_codegen @@ -29,6 +30,7 @@ db_tuner db_upgrade db_verify ex_access +ex_blob ex_btrec ex_bulk ex_csvcode @@ -61,6 +63,7 @@ example_database_load example_database_read excxx_access excxx_btrec +excxx_bulk excxx_env excxx_example_database_load excxx_example_database_read diff --git a/dist/win_projects/db_wince.projects b/dist/win_projects/db_wince.projects index 69ffc650..ccd36a8d 100644 --- a/dist/win_projects/db_wince.projects +++ b/dist/win_projects/db_wince.projects @@ -1,5 +1,19 @@ db_small db +db_archive +db_checkpoint +db_deadlock +db_dump +db_hotbackup +db_load +db_log_verify +db_printlog db_sql +db_recover +db_replicate +db_stat +db_tuner +db_upgrade +db_verify wce_sql wce_tpcb diff --git a/dist/win_projects/genproject.template b/dist/win_projects/genproject.template index faf8dd96..8dbfbdad 100644 --- a/dist/win_projects/genproject.template +++ b/dist/win_projects/genproject.template @@ -60,6 +60,12 @@ declare function local:isRelease($config) as xs:boolean contains($config,"Release") }; +(: whether use WinMainCRTStartup as EntryPoint :) +declare function local:isWinMain($project) as xs:boolean +{ + contains($project/configuration/text(),"WinMain") +}; + declare function local:characterSet() { if ($mobile) then "1" else "2" @@ -297,8 +303,9 @@ local:indent(6),<Tool> {local:makeImportLibrary($project,$config)} {local:makeModuleDefinition($project,$config)} {attribute{"TargetMachine"}{if (contains($platform, "(ARMV4)")) then "3" else "0"}} + {if ($mobile) then (attribute{"SubSystem"}{"9"}) else ()} {if ($project/type eq "app" and $mobile) then - (attribute{"SubSystem"}{"9"},attribute{"EntryPointSymbol"}{"WinMainCRTStartup"}) + (attribute{"EntryPointSymbol"}{if (local:isWinMain($project)) then "WinMainCRTStartup" else "mainACRTStartup"}) else ()} </Tool> }; diff --git a/dist/win_projects/projects.template.xml b/dist/win_projects/projects.template.xml index b798fc65..c24083f2 100644 --- a/dist/win_projects/projects.template.xml +++ b/dist/win_projects/projects.template.xml @@ -143,7 +143,7 @@ </platform> </library> <library name="tcl"> - <libname config="Debug">tcl85g</libname> + <libname config="Debug">tcl85</libname> <libname config="Release">tcl85</libname> <platform name="Win32 x64"> <config type="Debug"> @@ -189,6 +189,10 @@ <!-- <preprocessor config="Static Debug">DIAGNOSTIC</preprocessor> --> <files> <file name="src/crypto/aes_method.c"/> + <file name="src/blob/blob_fileops.c"/> + <file name="src/blob/blob_page.c"/> + <file name="src/blob/blob_stream.c"/> + <file name="src/blob/blob_util.c"/> <file name="src/btree/bt_compact.c"/> <file name="src/btree/bt_compare.c"/> <file name="src/btree/bt_compress.c"/> @@ -215,6 +219,7 @@ <file name="lang/cxx/cxx_channel.cpp"/> <file name="lang/cxx/cxx_db.cpp"/> <file name="lang/cxx/cxx_dbc.cpp"/> + <file name="lang/cxx/cxx_dbstream.cpp"/> <file name="lang/cxx/cxx_dbt.cpp"/> <file name="lang/cxx/cxx_env.cpp"/> <file name="lang/cxx/cxx_except.cpp"/> @@ -309,7 +314,6 @@ <file name="src/hash/hash_verify.c"/> <file name="src/heap/heap.c"/> <file name="src/heap/heap_auto.c"/> - <file name="src/heap/heap_autop.c"/> <file name="src/heap/heap_backup.c"/> <file name="src/heap/heap_conv.c"/> <file name="src/heap/heap_method.c"/> @@ -317,6 +321,7 @@ <file name="src/heap/heap_rec.c"/> <file name="src/heap/heap_reclaim.c"/> <file name="src/heap/heap_stat.c"/> + <file name="src/heap/heap_upgrade.c"/> <file name="src/heap/heap_verify.c"/> <file name="src/hmac/hmac.c"/> <file name="lang/hsearch/hsearch.c"/> @@ -389,6 +394,7 @@ <file name="src/os_windows/os_map.c"/> <file name="src/os_windows/os_mkdir.c"/> <file name="src/os_windows/os_open.c"/> + <file name="src/os_windows/os_rmdir.c"/> <file name="src/os/os_path.c"/> <file name="src/os/os_pid.c"/> <file name="src/os_windows/os_rename.c"/> @@ -475,6 +481,10 @@ <preprocessor config="all">_UNICODE;UNICODE;HAVE_SMALLBUILD</preprocessor> <preprocessor config="dll">DB_CREATE_DLL</preprocessor> <files> + <file name="src\blob\blob_fileops.c"/> + <file name="src\blob\blob_page.c"/> + <file name="src\blob\blob_stream.c"/> + <file name="src\blob\blob_util.c"/> <file name="src\btree\bt_compact.c"/> <file name="src\btree\bt_compare.c"/> <file name="src\btree\bt_conv.c"/> @@ -513,6 +523,7 @@ <file name="lang\cxx\cxx_channel.cpp"/> <file name="lang\cxx\cxx_db.cpp"/> <file name="lang\cxx\cxx_dbc.cpp"/> + <file name="lang\cxx\cxx_dbstream.cpp"/> <file name="lang\cxx\cxx_dbt.cpp"/> <file name="lang\cxx\cxx_env.cpp"/> <file name="lang\cxx\cxx_except.cpp"/> @@ -649,6 +660,7 @@ <file name="src\os_windows\os_map.c"/> <file name="src\os_windows\os_mkdir.c"/> <file name="src\os_windows\os_open.c"/> + <file name="src/os_windows/os_rmdir.c"/> <file name="src\os\os_path.c"/> <file name="src\os_windows\os_rename.c"/> <file name="src\os_windows\os_rw.c"/> @@ -721,7 +733,9 @@ <file name="lang\sql\sqlite\ext\fts3\fts3_icu.c"/> <file name="lang\sql\sqlite\ext\fts3\fts3_porter.c"/> <file name="lang\sql\sqlite\ext\fts3\fts3_snippet.c"/> + <file name="lang\sql\sqlite\ext\fts3\fts3_term.c"/> <file name="lang\sql\sqlite\ext\fts3\fts3_tokenizer1.c"/> + <file name="lang\sql\sqlite\ext\fts3\fts3_tokenize_vtab.c"/> <file name="lang\sql\sqlite\ext\fts3\fts3_tokenizer.c"/> <file name="lang\sql\sqlite\ext\fts3\fts3_write.c"/> <file name="lang\sql\sqlite\src\func.c"/> @@ -769,6 +783,7 @@ <file name="lang\sql\sqlite\src\vdbeaux.c"/> <file name="lang\sql\sqlite\src\vdbeblob.c"/> <file name="lang\sql\sqlite\src\vdbemem.c"/> + <file name="lang\sql\sqlite\src\vdbesort.c"/> <file name="lang\sql\sqlite\src\vdbetrace.c"/> <file name="lang\sql\sqlite\src\vtab.c"/> <file name="lang\sql\adapter\wal.c"/> @@ -787,11 +802,12 @@ <command config="ReleaseDebug"> mkdir "./$(OutDir)/jdbc_classes/" echo compiling JDBC classes -javac -g -target 1.5 -d "$(OutDir)\jdbc_classes" -classpath "$(OutDir)\jdbc_classes" ..\..\lang\sql\jdbc\SQLite\*java ..\..\lang\sql\jdbc\SQLite\JDBC2x\*java +javac -g -d "$(OutDir)\jdbc_classes" -classpath "$(OutDir)\jdbc_classes" ..\..\lang\sql\jdbc\SQLite\*java ..\..\lang\sql\jdbc\SQLite\JDBC2x\*java echo Building JNI header files javah -o ..\..\lang\sql\jdbc\native\sqlite_jni.h -classpath "$(OutDir)\jdbc_classes" SQLite.Database SQLite.Vm SQLite.FunctionContext SQLite.Stmt SQLite.Blob echo creating jar file -jar cf "$(OutDir)\jdbc.jar" -C "$(OutDir)\jdbc_classes" . +cd $(OutDir) +jar cf "jdbc.jar" -C "jdbc_classes" . echo JDBC build finished</command> </event> <preprocessor config="all">DB_CREATE_DLL;_UNICODE;UNICODE;HAVE_SQLITE3;HAVE_SQLITE3_MALLOC=1;HAVE_SQLITE3_PREPARE_V2=1;HAVE_SQLITE3_PREPARE16_V2=1;HAVE_SQLITE3_BIND_ZEROBLOB=1;HAVE_SQLITE3_CLEAR_BINDINGS=1;HAVE_SQLITE3_BIND_PARAMETER_COUNT=1;HAVE_SQLITE3_BIND_PARAMETER_NAME=1;HAVE_SQLITE3_BIND_PARAMETER_INDEX=1;HAVE_SQLITE3_RESULT_ZEROBLOB=1;HAVE_SQLITE3_INCRBLOBIO=1;HAVE_SQLITE3_SHARED_CACHE=1</preprocessor> @@ -859,6 +875,7 @@ echo JDBC build finished</command> <file name="lang/tcl/tcl_db.c"/> <file name="lang/tcl/tcl_db_pkg.c"/> <file name="lang/tcl/tcl_dbcursor.c"/> + <file name="lang/tcl/tcl_dbstream.c"/> <file name="lang/tcl/tcl_env.c"/> <file name="lang/tcl/tcl_internal.c"/> <file name="lang/tcl/tcl_lock.c"/> @@ -884,14 +901,15 @@ echo JDBC build finished</command> <command config="ReleaseDebug"> echo compiling Berkeley DB Java classes mkdir "./$(OutDir)/classes/" -javac -g -target 1.5 -d "$(OutDir)\classes" -classpath "$(OutDir)\classes" ..\..\lang\java\src\com\sleepycat\db\*.java ..\..\lang\java\src\com\sleepycat\db\internal\*.java ..\..\lang\java\src\com\sleepycat\asm\*.java ..\..\lang\java\src\com\sleepycat\bind\*.java ..\..\lang\java\src\com\sleepycat\bind\serial\*.java ..\..\lang\java\src\com\sleepycat\bind\tuple\*.java ..\..\lang\java\src\com\sleepycat\collections\*.java ..\..\lang\java\src\com\sleepycat\compat\*.java ..\..\lang\java\src\com\sleepycat\persist\*.java ..\..\lang\java\src\com\sleepycat\persist\evolve\*.java ..\..\lang\java\src\com\sleepycat\persist\impl\*.java ..\..\lang\java\src\com\sleepycat\persist\model\*.java ..\..\lang\java\src\com\sleepycat\persist\raw\*.java ..\..\lang\java\src\com\sleepycat\util\*.java ..\..\lang\java\src\com\sleepycat\util\keyrange\*.java +javac -g -d "$(OutDir)\classes" -classpath "$(OutDir)\classes" ..\..\lang\java\src\com\sleepycat\db\*.java ..\..\lang\java\src\com\sleepycat\db\internal\*.java ..\..\lang\java\src\com\sleepycat\asm\*.java ..\..\lang\java\src\com\sleepycat\bind\*.java ..\..\lang\java\src\com\sleepycat\bind\serial\*.java ..\..\lang\java\src\com\sleepycat\bind\tuple\*.java ..\..\lang\java\src\com\sleepycat\collections\*.java ..\..\lang\java\src\com\sleepycat\compat\*.java ..\..\lang\java\src\com\sleepycat\persist\*.java ..\..\lang\java\src\com\sleepycat\persist\evolve\*.java ..\..\lang\java\src\com\sleepycat\persist\impl\*.java ..\..\lang\java\src\com\sleepycat\persist\model\*.java ..\..\lang\java\src\com\sleepycat\persist\raw\*.java ..\..\lang\java\src\com\sleepycat\util\*.java ..\..\lang\java\src\com\sleepycat\util\keyrange\*.java java -classpath $(OutDir)\classes com.sleepycat.persist.model.ClassEnhancer $(OutDir)\classes echo compiling examples mkdir "$(OutDir)\classes.ex" -javac -g -target 1.5 -d "$(OutDir)\classes.ex" -classpath "$(OutDir)\classes;$(OutDir)\classes.ex" ..\..\examples/java\src\db\*.java ..\..\examples/java\src\db\GettingStarted\*.java ..\..\examples/java\src\db\repquote\*.java ..\..\examples/java\src\db\repquote_gsg\*.java ..\..\examples/java\src\db\txn\*.java ..\..\examples/java\src\collections\access\*.java ..\..\examples/java\src\collections\hello\*.java ..\..\examples/java\src\collections\ship\basic\*.java ..\..\examples/java\src\collections\ship\entity\*.java ..\..\examples/java\src\collections\ship\factory\*.java ..\..\examples/java\src\collections\ship\index\*.java ..\..\examples/java\src\collections\ship\marshal\*.java ..\..\examples/java\src\collections\ship\sentity\*.java ..\..\examples/java\src\collections\ship\tuple\*.java ..\..\examples/java\src\persist\*.java ..\..\examples/java\src\persist\gettingStarted\*.java ..\..\examples/java\src\persist\txn\*.java +javac -g -d "$(OutDir)\classes.ex" -classpath "$(OutDir)\classes;$(OutDir)\classes.ex" ..\..\examples/java\src\db\*.java ..\..\examples/java\src\db\GettingStarted\*.java ..\..\examples/java\src\db\repquote\*.java ..\..\examples/java\src\db\repquote_gsg\*.java ..\..\examples/java\src\db\txn\*.java ..\..\examples/java\src\collections\access\*.java ..\..\examples/java\src\collections\hello\*.java ..\..\examples/java\src\collections\ship\basic\*.java ..\..\examples/java\src\collections\ship\entity\*.java ..\..\examples/java\src\collections\ship\factory\*.java ..\..\examples/java\src\collections\ship\index\*.java ..\..\examples/java\src\collections\ship\marshal\*.java ..\..\examples/java\src\collections\ship\sentity\*.java ..\..\examples/java\src\collections\ship\tuple\*.java ..\..\examples/java\src\persist\*.java ..\..\examples/java\src\persist\gettingStarted\*.java ..\..\examples/java\src\persist\txn\*.java echo creating jar files -jar cfm "$(OutDir)/db.jar" ../..\lang/java/jarManifestEntries -C "$(OutDir)\classes" . -jar cf "$(OutDir)/dbexamples.jar" -C "$(OutDir)\classes.ex" . +cd $(OutDir) +jar cfm "db.jar" ../../..\lang/java/jarManifestEntries -C "classes" . +jar cf "dbexamples.jar" -C "classes.ex" . echo Java build finished</command> <output>force_compilation.txt</output> </event> @@ -907,6 +925,7 @@ echo Java build finished</command> <include type="ref">all</include> <options><nowp64/></options> <preprocessor config="all">DB_CREATE_DLL;_UNICODE;UNICODE</preprocessor> + <preprocessor config="Debug">CONFIG_TEST</preprocessor> <files> <file name="lang/csharp/libdb_csharp/db_csharp_wrap.c"/> </files> @@ -1031,6 +1050,7 @@ echo Java build finished</command> <file name="src/dbreg/dbreg_autop.c"/> <file name="src/fileops/fileops_autop.c"/> <file name="src/hash/hash_autop.c"/> + <file name="src/heap/heap_autop.c"/> <file name="src/qam/qam_autop.c"/> <file name="src/repmgr/repmgr_autop.c"/> <file name="src/txn/txn_autop.c"/> @@ -1069,6 +1089,20 @@ echo Java build finished</command> <file name="src/clib/getopt.c"/> </files> </project> + <project name="db_reptest" guid="{4786F27F-FF38-42e8-87C1-CC3B6E544C5D}"> + <type>app</type> + <configuration></configuration> + <depends>db</depends> + <include type="ref">all</include> + <files> + <file name="test/repmgr/db_reptest.c"/> + <file name="test/repmgr/reptest_am.c"/> + <file name="test/repmgr/reptest_handles.c"/> + <file name="test/repmgr/reptest_spawn.c"/> + <file name="test/repmgr/reptest_util.c"/> + <file name="src/clib/getopt.c"/> + </files> + </project> <project name="db_sql_shell" guid="A5DB89F0-06E5-11DF-8A39-0800200C9A66" output="dbsql"> <type>app</type> <configuration></configuration> @@ -1122,9 +1156,25 @@ echo Java build finished</command> <file name="lang\sql\sqlite\ext\fts3\fts3_icu.c"/> <file name="lang\sql\sqlite\ext\fts3\fts3_porter.c"/> <file name="lang\sql\sqlite\ext\fts3\fts3_snippet.c"/> + <file name="lang\sql\sqlite\ext\fts3\fts3_term.c"/> + <file name="lang\sql\sqlite\ext\fts3\fts3_test.c"/> <file name="lang\sql\sqlite\ext\fts3\fts3_tokenizer1.c"/> <file name="lang\sql\sqlite\ext\fts3\fts3_tokenizer.c"/> + <file name="lang\sql\sqlite\ext\fts3\fts3_tokenize_vtab.c"/> <file name="lang\sql\sqlite\ext\fts3\fts3_write.c"/> + <file name="lang\sql\sqlite\ext\misc\amatch.c"/> + <file name="lang\sql\sqlite\ext\misc\closure.c"/> + <file name="lang\sql\sqlite\ext\misc\fuzzer.c"/> + <file name="lang\sql\sqlite\ext\misc\ieee754.c"/> + <file name="lang\sql\sqlite\ext\misc\nextchar.c"/> + <file name="lang\sql\sqlite\ext\misc\percentile.c"/> + <file name="lang\sql\sqlite\ext\misc\regexp.c"/> + <file name="lang\sql\sqlite\ext\misc\rot13.c"/> + <file name="lang\sql\sqlite\ext\misc\spellfix.c"/> + <file name="lang\sql\sqlite\ext\misc\totype.c"/> + <file name="lang\sql\sqlite\ext\misc\vfslog.c"/> + <file name="lang\sql\sqlite\ext\misc\vtshim.c"/> + <file name="lang\sql\sqlite\ext\misc\wholenumber.c"/> <file name="lang\sql\sqlite\src\func.c"/> <file name="lang\sql\sqlite\src\global.c"/> <file name="lang\sql\sqlite\src\hash.c"/> @@ -1172,6 +1222,7 @@ echo Java build finished</command> <file name="lang\sql\sqlite\src\vdbeaux.c"/> <file name="lang\sql\sqlite\src\vdbeblob.c"/> <file name="lang\sql\sqlite\src\vdbemem.c"/> + <file name="lang\sql\sqlite\src\vdbesort.c"/> <file name="lang\sql\sqlite\src\vdbetrace.c"/> <file name="lang\sql\sqlite\src\vtab.c"/> <file name="lang\sql\adapter\wal.c"/> @@ -1195,8 +1246,8 @@ echo Java build finished</command> <file name="lang\sql\sqlite\src\test_config.c"/> <file name="lang\sql\sqlite\src\test_demovfs.c"/> <file name="lang\sql\sqlite\src\test_devsym.c"/> + <file name="lang\sql\sqlite\src\test_fs.c"/> <file name="lang\sql\sqlite\src\test_func.c"/> - <file name="lang\sql\sqlite\src\test_fuzzer.c"/> <file name="lang\sql\sqlite\src\test_hexio.c"/> <file name="lang\sql\sqlite\src\test_intarray.c"/> <file name="lang\sql\sqlite\src\test_journal.c"/> @@ -1218,7 +1269,6 @@ echo Java build finished</command> <file name="lang\sql\sqlite\src\test_thread.c"/> <file name="lang\sql\sqlite\src\test_vfs.c"/> <file name="lang\sql\sqlite\src\test_vfstrace.c"/> - <file name="lang\sql\sqlite\src\test_wholenumber.c"/> <file name="lang\sql\sqlite\src\test_wsd.c"/> </files> </project> @@ -1311,6 +1361,17 @@ echo Java build finished</command> <file name="examples/c/ex_access.c"/> </files> </project> + <project name="ex_blob" guid="0460962E-97E3-40fd-B3CD-702085F2FC98"> + <type>app</type> + <configuration></configuration> + <depends>db</depends> + <references>db</references> + <include type="ref">all</include> + <files> + <file name="src/clib/getopt.c"/> + <file name="examples/c/ex_blob.c"/> + </files> + </project> <project name="ex_btrec" guid="5DD66F4B-EB4A-4453-BC31-3FF7B2240634"> <type>app</type> <configuration></configuration> @@ -1413,9 +1474,10 @@ echo Java build finished</command> <command config="ReleaseDebug"> echo compiling examples mkdir "$(OutDir)\classes.ex" -javac -g -target 1.5 -d "$(OutDir)\classes.ex" -classpath "$(OutDir)\classes;$(OutDir)\classes.ex" ..\..\examples/java\src\db\*.java ..\..\examples/java\src\db\GettingStarted\*.java ..\..\examples/java\src\db\repquote\*.java ..\..\examples/java\src\db\repquote_gsg\*.java ..\..\examples/java\src\db\txn\*.java ..\..\examples/java\src\collections\access\*.java ..\..\examples/java\src\collections\hello\*.java ..\..\examples/java\src\collections\ship\basic\*.java ..\..\examples/java\src\collections\ship\entity\*.java ..\..\examples/java\src\collections\ship\factory\*.java ..\..\examples/java\src\collections\ship\index\*.java ..\..\examples/java\src\collections\ship\marshal\*.java ..\..\examples/java\src\collections\ship\sentity\*.java ..\..\examples/java\src\collections\ship\tuple\*.java ..\..\examples/java\src\persist\*.java ..\..\examples/java\src\persist\gettingStarted\*.java ..\..\examples/java\src\persist\txn\*.java +javac -g -d "$(OutDir)\classes.ex" -classpath "$(OutDir)\classes;$(OutDir)\classes.ex" ..\..\examples/java\src\db\*.java ..\..\examples/java\src\db\GettingStarted\*.java ..\..\examples/java\src\db\repquote\*.java ..\..\examples/java\src\db\repquote_gsg\*.java ..\..\examples/java\src\db\txn\*.java ..\..\examples/java\src\collections\access\*.java ..\..\examples/java\src\collections\hello\*.java ..\..\examples/java\src\collections\ship\basic\*.java ..\..\examples/java\src\collections\ship\entity\*.java ..\..\examples/java\src\collections\ship\factory\*.java ..\..\examples/java\src\collections\ship\index\*.java ..\..\examples/java\src\collections\ship\marshal\*.java ..\..\examples/java\src\collections\ship\sentity\*.java ..\..\examples/java\src\collections\ship\tuple\*.java ..\..\examples/java\src\persist\*.java ..\..\examples/java\src\persist\gettingStarted\*.java ..\..\examples/java\src\persist\txn\*.java echo creating jar files -jar cf "$(OutDir)/dbexamples.jar" -C "$(OutDir)\classes.ex" . +cd $(OutDir) +jar cf "dbexamples.jar" -C "classes.ex" . echo Java example build finished</command> <output>force_compilation.txt</output> </event> @@ -1583,6 +1645,17 @@ echo Java example build finished</command> <file name="examples/cxx/BtRecExample.cpp"/> </files> </project> + <project name="excxx_bulk" guid="5AEBE8D9-4B6D-46AA-B810-30CD7E6BBD5F"> + <type>app</type> + <configuration></configuration> + <depends>db</depends> + <references>db</references> + <include type="ref">all</include> + <files> + <file name="src/clib/getopt.c"/> + <file name="examples/cxx/BulkExample.cpp"/> + </files> + </project> <project name="excxx_env" guid="E790C029-341D-489B-B987-D35947AD78C3"> <type>app</type> <configuration></configuration> @@ -1985,6 +2058,7 @@ echo Java example build finished</command> <file name="test/c/cutest/CuTest.c"/> <file name="test/c/cutest/CuTests.c"/> <file name="test/c/cutest/Runner.c"/> + <file name="test/c/suites/TestCallbackSetterAndGetter.c"/> <file name="test/c/suites/TestChannel.c"/> <file name="test/c/suites/TestDbHotBackup.c"/> <file name="test/c/suites/TestDbTuner.c"/> @@ -1992,7 +2066,10 @@ echo Java example build finished</command> <file name="test/c/suites/TestEnvConfig.c"/> <file name="test/c/suites/TestEnvMethod.c"/> <file name="test/c/suites/TestKeyExistErrorReturn.c"/> + <file name="test/c/suites/TestMutexAlignment.c"/> <file name="test/c/suites/TestPartial.c"/> + <file name="test/c/suites/TestPartition.c"/> + <file name="test/c/suites/TestPreOpenSetterAndGetter.c"/> <file name="test/c/suites/TestQueue.c"/> </files> </project> diff --git a/dist/win_projects/projects_csharp.template.xml b/dist/win_projects/projects_csharp.template.xml index c73489bc..f9c5728c 100644 --- a/dist/win_projects/projects_csharp.template.xml +++ b/dist/win_projects/projects_csharp.template.xml @@ -35,6 +35,8 @@ <file name="CompactData.cs" /> <file name="MultipleKeyDatabaseEntry.cs" /> <file name="DatabaseEntry.cs" /> + <file name="DatabaseStream.cs" /> + <file name="DatabaseStreamConfig.cs" /> <file name="DbChannel.cs" /> <file name="DbSite.cs" /> <file name="DbSiteConfig.cs" /> @@ -114,6 +116,7 @@ <file name="Internal\DB_LSN.cs" /> <file name="Internal\db_recops.cs" /> <file name="Internal\DB_SITE.cs" /> + <file name="Internal\DB_STREAM.cs" /> <file name="Internal\DB_TXN.cs" /> <file name="Internal\DB_TXN_TOKEN.cs" /> <file name="Internal\Delegates.cs" /> diff --git a/dist/win_projects/projects_wince.template.xml b/dist/win_projects/projects_wince.template.xml index 7a9cc337..d3f79ef9 100644 --- a/dist/win_projects/projects_wince.template.xml +++ b/dist/win_projects/projects_wince.template.xml @@ -63,6 +63,10 @@ <preprocessor config="Debug">DIAGNOSTIC;CONFIG_TEST</preprocessor> <preprocessor config="Static Debug">DIAGNOSTIC;</preprocessor> <files> + <file name="src\blob\blob_fileops.c"/> + <file name="src\blob\blob_page.c"/> + <file name="src\blob\blob_stream.c"/> + <file name="src\blob\blob_util.c"/> <file name="src\btree\bt_compact.c"/> <file name="src\btree\bt_compare.c"/> <file name="src\btree\bt_conv.c"/> @@ -204,6 +208,7 @@ <file name="src\log\log_debug.c"/> <file name="src\log\log_get.c"/> <file name="src\log\log_method.c"/> + <file name="src\log\log_print.c"/> <file name="src\log\log_put.c"/> <file name="src\log\log_stat.c"/> <file name="src\log\log_verify.c"/> @@ -242,6 +247,11 @@ <file name="src\os\os_tmpdir.c"/> <file name="src\os\os_uid.c"/> <file name="src\os_windows\ce_ctime.c"/> + <file name="src\os_windows\ce_freopen.c"/> + <file name="src\os_windows\ce_gmtime.c"/> + <file name="src\os_windows\ce_mktime.c"/> + <file name="src\os_windows\ce_remove.c"/> + <file name="src\os_windows\ce_util_sig.c"/> <file name="src\os_windows\os_abs.c"/> <file name="src\os_windows\os_clock.c"/> <file name="src\os_windows\os_config.c"/> @@ -257,6 +267,7 @@ <file name="src\os_windows\os_mkdir.c"/> <file name="src\os_windows\os_open.c"/> <file name="src\os_windows\os_rename.c"/> + <file name="src\os_windows\os_rmdir.c"/> <file name="src\os_windows\os_rw.c"/> <file name="src\os_windows\os_seek.c"/> <file name="src\os_windows\os_stat.c"/> @@ -299,6 +310,10 @@ <preprocessor config="Debug">DIAGNOSTIC</preprocessor> <preprocessor config="Static Debug">DIAGNOSTIC</preprocessor> <files> + <file name="src\blob\blob_fileops.c"/> + <file name="src\blob\blob_page.c"/> + <file name="src\blob\blob_stream.c"/> + <file name="src\blob\blob_util.c"/> <file name="src\btree\bt_compact.c"/> <file name="src\btree\bt_compare.c"/> <file name="src\btree\bt_conv.c"/> @@ -462,6 +477,7 @@ <file name="src\os_windows\os_mkdir.c"/> <file name="src\os_windows\os_open.c"/> <file name="src\os_windows\os_rename.c"/> + <file name="src\os_windows\os_rmdir.c"/> <file name="src\os_windows\os_rw.c"/> <file name="src\os_windows\os_seek.c"/> <file name="src\os_windows\os_stat.c"/> @@ -562,6 +578,7 @@ <file name="lang\sql\sqlite\src\vdbeaux.c"/> <file name="lang\sql\sqlite\src\vdbeblob.c"/> <file name="lang\sql\sqlite\src\vdbemem.c"/> + <file name="lang\sql\sqlite\src\vdbesort.c"/> <file name="lang\sql\sqlite\src\vdbetrace.c"/> <file name="lang\sql\sqlite\src\vtab.c"/> <file name="lang\sql\adapter\wal.c"/> @@ -569,11 +586,151 @@ <file name="lang\sql\sqlite\src\where.c"/> </files> </project> + + <!-- Utilities --> + <project name="db_archive" guid="56056344-53A1-4FA6-B20B-862C0BA68953"> + <type>app</type> + <configuration></configuration> + <include type="ref">all</include> + <files> + <file name="util/db_archive.c"/> + <file name="src/clib/getopt.c"/> + </files> + </project> + <project name="db_checkpoint" guid="A3BE0163-1E6C-4235-9B6B-3A36ABB5E285"> + <type>app</type> + <configuration></configuration> + <include type="ref">all</include> + <files> + <file name="util/db_checkpoint.c"/> + <file name="src/clib/getopt.c"/> + </files> + </project> + <project name="db_deadlock" guid="CD0FD995-B4D1-4907-987B-99CF3304E7E0"> + <type>app</type> + <configuration></configuration> + <include type="ref">all</include> + <files> + <file name="util/db_deadlock.c"/> + <file name="src/clib/getopt.c"/> + </files> + </project> + <project name="db_dump" guid="DB067D2C-7163-428B-AAF8-642316AB173B"> + <type>app</type> + <configuration></configuration> + <include type="ref">all</include> + <files> + <file name="util/db_dump.c"/> + <file name="src/clib/getopt.c"/> + </files> + </project> + <project name="db_hotbackup" guid="67C0DABC-353A-491F-9A77-8E2E601ED52B"> + <type>app</type> + <configuration></configuration> + <include type="ref">all</include> + <files> + <file name="util/db_hotbackup.c"/> + <file name="src/clib/getopt.c"/> + </files> + </project> + <project name="db_load" guid="7640133F-4AB8-42DA-ADB5-95F21447F7D5"> + <type>app</type> + <configuration></configuration> + <include type="ref">all</include> + <files> + <file name="util/db_load.c"/> + <file name="src/clib/getopt.c"/> + </files> + </project> + <project name="db_log_verify" guid="872961A3-877A-4B53-886D-F1FB65073608"> + <type>app</type> + <configuration></configuration> + <include type="ref">all</include> + <files> + <file name="util/db_log_verify.c"/> + <file name="src/clib/getopt.c"/> + </files> + </project> + <project name="db_printlog" guid="D505F51B-2B92-4850-A08F-9113D947FF4B"> + <type>app</type> + <configuration></configuration> + <include type="ref">all</include> + <files> + <file name="util/db_printlog.c"/> + <file name="src/btree/btree_autop.c"/> + <file name="src/db/crdel_autop.c"/> + <file name="src/db/db_autop.c"/> + <file name="src/dbreg/dbreg_autop.c"/> + <file name="src/fileops/fileops_autop.c"/> + <file name="src/hash/hash_autop.c"/> + <file name="src/heap/heap_autop.c"/> + <file name="src/qam/qam_autop.c"/> + <file name="src/repmgr/repmgr_autop.c"/> + <file name="src/txn/txn_autop.c"/> + <file name="src/clib/getopt.c"/> + <file name="src/os_windows/ce_localtime.c"/> + </files> + </project> + <project name="db_recover" guid="9E03FD51-E387-4EEF-9EEA-E71707A56212"> + <type>app</type> + <configuration></configuration> + <include type="ref">all</include> + <files> + <file name="util/db_recover.c"/> + <file name="src/clib/getopt.c"/> + <file name="src/os_windows/ce_localtime.c"/> + </files> + </project> + <project name="db_replicate" guid="2AA9FB16-F1B0-47A7-AE10-7830E4E317E2"> + <type>app</type> + <configuration></configuration> + <include type="ref">all</include> + <files> + <file name="util/db_replicate.c"/> + <file name="src/clib/getopt.c"/> + </files> + </project> + <project name="db_stat" guid="19D3A4CB-1C12-43D4-A94B-D2B387AD43E5"> + <type>app</type> + <configuration></configuration> + <include type="ref">all</include> + <files> + <file name="util/db_stat.c"/> + <file name="src/clib/getopt.c"/> + </files> + </project> + <project name="db_tuner" guid="A86208B6-BEEB-11DF-BCF9-116EDFD72085"> + <type>app</type> + <configuration></configuration> + <include type="ref">all</include> + <files> + <file name="util/db_tuner.c"/> + <file name="src/clib/getopt.c"/> + </files> + </project> + <project name="db_upgrade" guid="5F4D66DB-8D75-43D4-A1BB-60A01BC6B32F"> + <type>app</type> + <configuration></configuration> + <include type="ref">all</include> + <files> + <file name="util/db_upgrade.c"/> + <file name="src/clib/getopt.c"/> + </files> + </project> + <project name="db_verify" guid="12E118CA-CAAE-4F54-AE81-8D9981AA0635"> + <type>app</type> + <configuration></configuration> + <include type="ref">all</include> + <files> + <file name="util/db_verify.c"/> + <file name="src/clib/getopt.c"/> + </files> + </project> <!-- Applications --> <project name="wce_sql" guid="75DF98AA-25DF-4183-A022-024CF918480D"> <type>app</type> - <configuration></configuration> + <configuration>WinMain</configuration> <include type="ref">all</include> <include type="ref">sql_app</include> <files> @@ -591,7 +748,7 @@ <project name="wce_tpcb" guid="F2CE670A-ABAE-414A-9A17-8079AB58613F"> <type>app</type> - <configuration></configuration> + <configuration>WinMain</configuration> <include type="ref">all</include> <files> <file name="examples/cxx/wce_tpcb/TpcbExample.cpp"/> diff --git a/dist/win_projects/vs2010.template b/dist/win_projects/vs2010.template index a6165afe..d3305474 100644 --- a/dist/win_projects/vs2010.template +++ b/dist/win_projects/vs2010.template @@ -479,7 +479,7 @@ declare function local:generateRcFilesNoFilter($project) for $file in $project/files//file return if (ends-with($file/@name,".rc")) then (local:indent(2),<ItemGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - {local:indent(4)}<ResourceCompile Include="../{substring-after($file/@name,"/")}"> + {local:indent(4)}<ResourceCompile Include="{local:windowsPath(concat($sourcePath,$file/@name))}"> {for $platform in local:getPlatforms($vsversion) return for $config in local:getConfiguration($project) return( local:indent(6), <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=={concat("'",$config,"|",$platform,"'")}">{concat(if ($config="Debug") then "_DEBUG" else "NDEBUG",";","$(NoInherit))",";%(PreprocessorDefinitions)")}</PreprocessorDefinitions>) diff --git a/dist/wince_config.in b/dist/wince_config.in index d20576fe..555dfa68 100644 --- a/dist/wince_config.in +++ b/dist/wince_config.in @@ -86,6 +86,16 @@ /* Define to 1 if building the DBM API. */ /* #undef HAVE_DBM */ +/* Define to 1 if you want a version that records extra information about + errors. */ +/* #undef HAVE_ERROR_HISTORY */ + +/* Define to 1 if you have the `directio' function. */ +/* #undef HAVE_DIRECTIO */ + +/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'. + */ +#define HAVE_DIRENT_H 1 /* Define to 1 if you have the `directio' function. */ /* #undef HAVE_DIRECTIO */ @@ -105,6 +115,9 @@ /* Define to 1 if you have EXIT_SUCCESS/EXIT_FAILURE #defines. */ #define HAVE_EXIT_SUCCESS 1 +/* Define to 1 for failchk to inform all waiting threads about crashes. */ +/* #undef HAVE_FAILCHK_BROADCAST */ + /* Define to 1 if you have the `fchmod' function. */ /* #undef HAVE_FCHMOD */ @@ -182,6 +195,9 @@ /* Define to 1 if you have the `hstrerror' function. */ /* #undef HAVE_HSTRERROR */ +/* Define to 1 if you have the `initstate_r' function. */ +/* #undef HAVE_INITSTATE_R */ + /* Define to 1 if you have the <inttypes.h> header file. */ /* #undef HAVE_INTTYPES_H */ @@ -200,6 +216,9 @@ /* Define to 1 if you have the `localtime' function. */ /* #undef HAVE_LOCALTIME */ +/* Define to 1 if you have the `localtime_r' function. */ +/* #undef HAVE_LOCALTIME_R */ + /* Define to 1 if you have the `isspace' function. */ #define HAVE_ISSPACE 1 @@ -376,6 +395,15 @@ pthread_cond_t. */ /* #undef HAVE_PTHREAD_COND_REINIT_OKAY */ +/* Define to 1 if you have the `pthread_getspecific' function. */ +/* #undef HAVE_PTHREAD_GETSPECIFIC */ + +/* Define to 1 if you have the `pthread_key_create' function. */ +/* #undef HAVE_PTHREAD_KEY_CREATE */ + +/* Define to 1 if you have the `pthread_once' function. */ +/* #undef HAVE_PTHREAD_ONCE */ + /* Define to 1 if it is OK to initialize an already initialized pthread_rwlock_t. */ /* #undef HAVE_PTHREAD_RWLOCK_REINIT_OKAY */ @@ -383,6 +411,9 @@ /* Define to 1 if you have the `pthread_self' function. */ /* #undef HAVE_PTHREAD_SELF */ +/* Define to 1 if you have the `pthread_setspecific' function. */ +/* #undef HAVE_PTHREAD_SETSPECIFIC */ + /* Define to 1 if you have the `pthread_yield' function. */ /* #undef HAVE_PTHREAD_YIELD */ @@ -409,6 +440,9 @@ /* Define to 1 if you have the `random' function. */ /* #undef HAVE_RANDOM */ +/* Define to 1 if you have the `random_r' function. */ +/* #undef HAVE_RANDOM_R / + /* Define to 1 if building replication support. */ /* #undef HAVE_REPLICATION */ @@ -445,6 +479,9 @@ /* Define to 1 if you have the `snprintf' function. */ #define HAVE_SNPRINTF 1 +/* Define to 1 if you have the `srandom_r' function. */ +/* #undef HAVE_SRANDOM_R */ + /* Define to 1 if you have the `stat' function. */ #define HAVE_STAT 1 @@ -604,6 +641,9 @@ /* The size of a `long long', as computed by sizeof. */ /* #undef SIZEOF_LONG_LONG */ +/* The size of `off_t', as computed by sizeof. */ +/* #undef SIZEOF_OFF_T */ + /* The size of a `short', as computed by sizeof. */ /* #undef SIZEOF_SHORT */ diff --git a/dist/winmsi/build.bat b/dist/winmsi/build.bat index 001c3afd..c6369606 100644 --- a/dist/winmsi/build.bat +++ b/dist/winmsi/build.bat @@ -1,14 +1,14 @@ @echo off :: Helper script to build BDB products for binary release :: Assumes current directory is <product>/dist -:: Current version of Visual Studio for binaries is 2005. +:: Current version of Visual Studio for binaries is 2008. :: This is enforced but if testing is desired for other releases -:: it's possible to cut/paste. +:: it's possible to edit. :: :: Try to find different versions of Visual Studio -call :TryBat "%VS80COMNTOOLS%\vsvars32.bat" && goto VS80 +::call :TryBat "%VS80COMNTOOLS%\vsvars32.bat" && goto VS80 call :TryBat "%VS90COMNTOOLS%\vsvars32.bat" && goto VS90 :: no luck @@ -30,24 +30,26 @@ echo Using Visual Studio format 8.0 (Visual Studio 2005) goto :eof :VS90 -@echo Windows binaries must be built using Visual Studio 2005 -@echo If you want to test VS2008, uncomment the goto line below. -@echo Note these build lines will not work with the express editions -@echo of VS which do not appear to include "devenv." +@echo Note these build commands will not work with the express +@echo editions of VS2008 which do not appear to include "devenv." @echo Express editions can be built with lines like: @echo "VCExpress Berkeley_DB.sln /build" or @echo "VCSExpress BDB_dotNet.sln /build" -goto :batnotfound +::goto :batnotfound @echo Using Visual Studio format 9.0 (Visual Studio 2008) @echo "" > winbld.out +@echo devenv /upgrade ..\build_windows\Berkeley_DB.sln +@devenv /upgrade ..\build_windows\Berkeley_DB.sln >> winbld.out @echo devenv /build Release ..\build_windows\Berkeley_DB.sln @devenv /build Release ..\build_windows\Berkeley_DB.sln >> winbld.out @echo devenv /build Release ..\build_windows\Berkeley_DB.sln /project VS8\db_java.vcproj @devenv /build Release ..\build_windows\Berkeley_DB.sln /project VS8\db_java.vcproj +@echo devenv /upgrade ..\build_windows\BDB_dotNet.sln +@devenv /upgrade ..\build_windows\BDB_dotNet.sln >> winbld.out @echo devenv /build Release ..\build_windows\BDB_dotNet.sln @devenv /build Release ..\build_windows\BDB_dotNet.sln >> winbld.out -@echo devenv /build Release ..\build_windows\VS8\db_sql_jdbc.vcproj -@devenv /build Release ..\build_windows\VS8\db_sql_jdbc.vcproj >> winbld.out +@echo devenv /build Release ..\build_windows\Berkeley_DB.sln /project VS8\db_sql_java.vcproj +@devenv /build Release ..\build_windows\Berkeley_DB.sln /project VS8\db_sql_java.vcproj >> winbld.out @echo devenv /build Release ..\build_windows\VS8\db_sql_odbc.vcproj @devenv /build Release ..\build_windows\VS8\db_sql_odbc.vcproj >> winbld.out goto :eof diff --git a/dist/winmsi/db.wxs b/dist/winmsi/db.wxs index a12bf3b6..a274daed 100644 --- a/dist/winmsi/db.wxs +++ b/dist/winmsi/db.wxs @@ -1,5 +1,5 @@ <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> - <Product Id='*' UpgradeCode='2df79540-9c19-11df-b5e4-00262db1b537' + <Product Id='*' UpgradeCode='89316d6e-b68c-11e3-8d9b-001d099e0a33' Name='@PRODUCT_NAME@' Version='@PROD_WIX_VERSION@' Manufacturer='Oracle' Language='1033'> @@ -12,7 +12,7 @@ Compressed='yes' Platform="x86" Languages="1033" SummaryCodepage="1252" /> <!-- The upgrade id should be the same to the UpgradeCode of the previous version you want upgrade --> - <Upgrade Id='529068a1-2ba8-11df-8e8e-00262db1b537'> + <Upgrade Id='2ef4dbf0-b1a7-11e2-af6c-001e4f951af2'> <UpgradeVersion OnlyDetect="yes" Minimum="@PROD_WIX_VERSION@" Property="NEWERFOUND" |