Merge branch 'master' into gtm_destdir
This commit is contained in:
commit
af8fbc57f1
256
CMakeLists.txt
256
CMakeLists.txt
|
@ -22,6 +22,24 @@ else()
|
|||
set(arch "x86_64")
|
||||
endif()
|
||||
|
||||
# Choose where to get bootstrap sources.
|
||||
set(GTM_DIST "" CACHE PATH "Existing GT.M Distribution")
|
||||
if(GTM_DIST)
|
||||
# Bootstrap using already-installed mumps.
|
||||
message(STATUS "Using existing gtm_dist=${GTM_DIST} to generate sources.")
|
||||
set(gen_bootstrap 1)
|
||||
set(gen_bootstrap_dist "${GTM_DIST}")
|
||||
set(gen_bootstrap_mumps "${GTM_DIST}/mumps")
|
||||
set(gen_bootstrap_depend "${gen_bootstrap_mumps}")
|
||||
else()
|
||||
# Bootstrap using pre-generated bootstrap sources.
|
||||
# We generate them again only for comparison.
|
||||
set(gen_bootstrap 0)
|
||||
set(gen_bootstrap_dist "${GTM_BINARY_DIR}")
|
||||
set(gen_bootstrap_mumps "$<TARGET_FILE:mumps>")
|
||||
set(gen_bootstrap_depend mumps)
|
||||
endif()
|
||||
|
||||
set(GTM_INSTALL_DIR lib/fis-gtm/${version}_${arch} CACHE STRING "Install directory (under CMAKE_PREFIX_PATH if relative)")
|
||||
if(NOT GTM_INSTALL_DIR)
|
||||
set(GTM_INSTALL_DIR .)
|
||||
|
@ -63,12 +81,14 @@ add_definitions(
|
|||
set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS_DEBUG DEBUG)
|
||||
|
||||
set(gt_src_list)
|
||||
set(gen_xfer_desc 0)
|
||||
if("${CMAKE_SYSTEM_NAME}" MATCHES "Linux")
|
||||
list(APPEND gt_src_list sr_linux)
|
||||
if("${CMAKE_SIZEOF_VOID_P}" EQUAL 4)
|
||||
list(APPEND gt_src_list sr_i386 sr_x86_regs sr_unix_nsb)
|
||||
else()
|
||||
list(APPEND gt_src_list sr_x86_64 sr_x86_regs)
|
||||
set(gen_xfer_desc 1)
|
||||
endif()
|
||||
endif()
|
||||
list(APPEND gt_src_list
|
||||
|
@ -78,10 +98,22 @@ list(APPEND gt_src_list
|
|||
sr_port_cm
|
||||
sr_port
|
||||
)
|
||||
foreach(d ${gt_src_list})
|
||||
set(source_dir_${d} ${GTM_SOURCE_DIR}/${d})
|
||||
file(GLOB sources_${d} RELATIVE ${source_dir_${d}}
|
||||
${d}/*.c ${d}/*.s ${d}/*.si)
|
||||
endforeach()
|
||||
if(gen_bootstrap)
|
||||
# Prefer generated sources over all other locations.
|
||||
set(gt_src_list gen ${gt_src_list})
|
||||
set(source_dir_gen ${GTM_BINARY_DIR}/gen)
|
||||
# Hard-code list since we cannot glob files that do not exist.
|
||||
set(sources_gen cmerrors_ctl.c cmierrors_ctl.c gdeerrors_ctl.c merrors_ctl.c ttt.c)
|
||||
endif()
|
||||
|
||||
set(includes)
|
||||
foreach(d ${gt_src_list})
|
||||
list(APPEND includes ${GTM_SOURCE_DIR}/${d})
|
||||
list(APPEND includes ${source_dir_${d}})
|
||||
endforeach()
|
||||
include_directories(${includes})
|
||||
include_directories(${GTM_BINARY_DIR})
|
||||
|
@ -89,7 +121,7 @@ include_directories(${GTM_BINARY_DIR})
|
|||
function(select_file src_var name)
|
||||
set(found "")
|
||||
foreach(d ${gt_src_list})
|
||||
set(src "${GTM_SOURCE_DIR}/${d}/${name}")
|
||||
set(src "${source_dir_${d}}/${name}")
|
||||
if(EXISTS "${src}")
|
||||
set(found "${src}")
|
||||
break()
|
||||
|
@ -101,11 +133,7 @@ function(select_file src_var name)
|
|||
set("${src_var}" "${found}" PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
foreach(d ${gt_src_list})
|
||||
file(GLOB sources_${d} RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/${d}
|
||||
${d}/*.c ${d}/*.s ${d}/*.si)
|
||||
endforeach()
|
||||
|
||||
set(sources_used "")
|
||||
macro(set_source_list target)
|
||||
foreach(name ${ARGN})
|
||||
set(src "")
|
||||
|
@ -113,6 +141,7 @@ macro(set_source_list target)
|
|||
if(";${sources_${d}};" MATCHES ";(${name}\\.(c|s|si));")
|
||||
set(src ${d}/${CMAKE_MATCH_1})
|
||||
set("source_used_${CMAKE_MATCH_1}" 1)
|
||||
list(APPEND sources_used ${source_dir_${d}}/${CMAKE_MATCH_1})
|
||||
break()
|
||||
endif()
|
||||
endforeach()
|
||||
|
@ -164,23 +193,115 @@ set_source_list(semstat2 semstat2)
|
|||
|
||||
#-----------------------------------------------------------------------------
|
||||
# libmumps gets leftover sources, so compute the remaining list.
|
||||
set(source_used_dtgbldir.c 1) # exclude unused source
|
||||
set(libmumps_SOURCES "")
|
||||
foreach(d ${gt_src_list})
|
||||
foreach(s ${sources_${d}})
|
||||
if(NOT source_used_${s})
|
||||
list(APPEND libmumps_SOURCES ${d}/${s})
|
||||
set(source_used_${s} 1)
|
||||
list(APPEND sources_used ${source_dir_${d}}/${s})
|
||||
endif()
|
||||
endforeach()
|
||||
endforeach()
|
||||
# Remove unused sources.
|
||||
list(REMOVE_ITEM libmumps_SOURCES
|
||||
sr_unix/dtgbldir.c
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Generate files depending on gtm
|
||||
|
||||
# Copy generation routines to a working directory.
|
||||
foreach(m chk2lev.m chkop.m gendash.m genout.m loadop.m loadvx.m msg.m tttgen.m tttscan.m)
|
||||
add_custom_command(
|
||||
OUTPUT gen/${m}
|
||||
DEPENDS ${GTM_SOURCE_DIR}/sr_port/${m}
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${GTM_SOURCE_DIR}/sr_port/${m} ${GTM_BINARY_DIR}/gen/${m}
|
||||
)
|
||||
endforeach()
|
||||
|
||||
set(mumps_ttt_args -run tttgen
|
||||
${GTM_SOURCE_DIR}/sr_unix/ttt.txt
|
||||
${GTM_SOURCE_DIR}/sr_port/opcode_def.h
|
||||
${GTM_SOURCE_DIR}/sr_port/vxi.h
|
||||
)
|
||||
add_custom_command(
|
||||
OUTPUT gen/ttt.c
|
||||
DEPENDS ${GTM_SOURCE_DIR}/sr_unix/ttt.txt
|
||||
gen/chk2lev.m gen/chkop.m gen/gendash.m gen/genout.m gen/loadop.m
|
||||
gen/loadvx.m gen/tttgen.m gen/tttscan.m
|
||||
${GTM_SOURCE_DIR}/sr_unix/mumps.cmake ${gen_bootstrap_depend}
|
||||
WORKING_DIRECTORY ${GTM_BINARY_DIR}/gen
|
||||
COMMAND ${CMAKE_COMMAND}
|
||||
-D gtm_dist=${gen_bootstrap_dist}
|
||||
-D gtmroutines=.
|
||||
-D mumps=${gen_bootstrap_mumps}
|
||||
-D "args=${mumps_ttt_args}"
|
||||
-D output_file=ttt.log
|
||||
-P ${GTM_SOURCE_DIR}/sr_unix/mumps.cmake
|
||||
VERBATIM
|
||||
)
|
||||
list(APPEND gen_bootstrap_files gen/ttt.c)
|
||||
|
||||
set(gen_merrors_extra gen/merrors_ansi.h)
|
||||
foreach(msg
|
||||
sr_port/cmerrors.msg
|
||||
sr_port/gdeerrors.msg
|
||||
sr_port/merrors.msg
|
||||
sr_unix_gnp/cmierrors.msg
|
||||
)
|
||||
get_filename_component(name ${msg} NAME_WE)
|
||||
set(mumps_msg_args -run msg ${GTM_SOURCE_DIR}/${msg} unix)
|
||||
set(outputs gen/${name}_ctl.c ${gen_${name}_extra})
|
||||
add_custom_command(
|
||||
OUTPUT ${outputs}
|
||||
DEPENDS gen/msg.m ${GTM_SOURCE_DIR}/${msg}
|
||||
${GTM_SOURCE_DIR}/sr_unix/mumps.cmake ${gen_bootstrap_depend}
|
||||
WORKING_DIRECTORY ${GTM_BINARY_DIR}/gen
|
||||
COMMAND ${CMAKE_COMMAND}
|
||||
-D gtm_dist=${gen_bootstrap_dist}
|
||||
-D gtmroutines=.
|
||||
-D mumps=${gen_bootstrap_mumps}
|
||||
-D "args=${mumps_msg_args}"
|
||||
-P ${GTM_SOURCE_DIR}/sr_unix/mumps.cmake
|
||||
VERBATIM
|
||||
)
|
||||
list(APPEND gen_bootstrap_files ${outputs})
|
||||
endforeach()
|
||||
|
||||
add_custom_target(gen_bootstrap ALL DEPENDS ${gen_bootstrap_files})
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
|
||||
if(gen_xfer_desc)
|
||||
list(SORT sources_used)
|
||||
set(CMAKE_CONFIGURABLE_FILE_CONTENT "")
|
||||
foreach(src ${sources_used})
|
||||
set(CMAKE_CONFIGURABLE_FILE_CONTENT "${CMAKE_CONFIGURABLE_FILE_CONTENT}${src}\n")
|
||||
endforeach()
|
||||
configure_file(${CMAKE_ROOT}/Modules/CMakeConfigurableFile.in ${GTM_BINARY_DIR}/sources.list)
|
||||
add_custom_command(
|
||||
OUTPUT xfer_desc.i
|
||||
WORKING_DIRECTORY ${GTM_BINARY_DIR}
|
||||
DEPENDS ${GTM_SOURCE_DIR}/sr_unix/gen_xfer_desc.cmake
|
||||
${GTM_BINARY_DIR}/sources.list
|
||||
COMMAND ${CMAKE_COMMAND}
|
||||
-D CMAKE_C_COMPILER=${CMAKE_C_COMPILER}
|
||||
-D "includes=${includes}"
|
||||
-P ${GTM_SOURCE_DIR}/sr_unix/gen_xfer_desc.cmake
|
||||
VERBATIM
|
||||
)
|
||||
add_custom_target(gen_xfer_desc DEPENDS xfer_desc.i)
|
||||
if(gen_bootstrap)
|
||||
add_dependencies(gen_xfer_desc gen_bootstrap)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
|
||||
add_executable(gtm_threadgbl_deftypes ${gtm_threadgbl_deftypes_SOURCES})
|
||||
if(gen_xfer_desc)
|
||||
add_dependencies(gtm_threadgbl_deftypes gen_xfer_desc)
|
||||
elseif(gen_bootstrap)
|
||||
add_dependencies(gtm_threadgbl_deftypes gen_bootstrap)
|
||||
endif()
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT gtm_threadgbl_deftypes.h
|
||||
|
@ -254,11 +375,14 @@ target_link_libraries(lke liblke libmumps libgnpclient libmumps libgnpclient lib
|
|||
|
||||
add_executable(gtcm_server ${gtcm_server_SOURCES})
|
||||
target_link_libraries(gtcm_server libgtcm libmumps libstub)
|
||||
list(APPEND with_export gtcm_server)
|
||||
add_executable(gtcm_gnp_server ${gtcm_gnp_server_SOURCES})
|
||||
target_link_libraries(gtcm_gnp_server libgnpserver liblke libmumps libcmisockettcp libstub)
|
||||
list(APPEND with_export gtcm_gnp_server)
|
||||
|
||||
add_executable(gtcm_play ${gtcm_play_SOURCES})
|
||||
target_link_libraries(gtcm_play libgtcm libmumps libstub)
|
||||
list(APPEND with_export gtcm_play)
|
||||
|
||||
add_executable(gtcm_pkdisp ${gtcm_pkdisp_SOURCES})
|
||||
target_link_libraries(gtcm_pkdisp libgtcm libmumps libstub)
|
||||
|
@ -494,6 +618,12 @@ else()
|
|||
message(FATAL_ERROR "Unable to find 'icu-config'. Set ICUCONFIG in CMake cache.")
|
||||
endif()
|
||||
|
||||
if (gtm_icu_version GREATER 10)
|
||||
message("libicu version ${gtm_icu_version} > 10")
|
||||
string(REGEX REPLACE "([0-9])([0-9]).*" "\\1.\\2" gtm_icu_version "${gtm_icu_version}")
|
||||
message("Fixing gtm_icu_version to ${gtm_icu_version}.\nThis had better be the default")
|
||||
endif()
|
||||
|
||||
foreach(gtm_chset "" "UTF-8")
|
||||
foreach(in ${gtm_chset_routines_${gtm_chset}})
|
||||
string(REPLACE ".m" ".o" out "${in}")
|
||||
|
@ -517,6 +647,51 @@ foreach(gtm_chset "" "UTF-8")
|
|||
endforeach()
|
||||
endforeach()
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
set(gtm_hlp mumps.hlp)
|
||||
set(gde_hlp gde.hlp)
|
||||
foreach(help gtm gde)
|
||||
set(CMAKE_CONFIGURABLE_FILE_CONTENT
|
||||
"Change -segment DEFAULT -block=2048 -file=\$gtm_dist/${help}help.dat
|
||||
Change -region DEFAULT -record=1020 -key=255
|
||||
exit")
|
||||
configure_file(${CMAKE_ROOT}/Modules/CMakeConfigurableFile.in
|
||||
${GTM_BINARY_DIR}/${help}help.in1)
|
||||
set(CMAKE_CONFIGURABLE_FILE_CONTENT
|
||||
"Do ^GTMHLPLD
|
||||
${GTM_SOURCE_DIR}/sr_port/${${help}_hlp}
|
||||
Halt")
|
||||
configure_file(${CMAKE_ROOT}/Modules/CMakeConfigurableFile.in
|
||||
${GTM_BINARY_DIR}/${help}help.in2)
|
||||
set(env
|
||||
-D gtm_dist=${GTM_BINARY_DIR}
|
||||
-D gtmroutines=.
|
||||
-D gtmgbldir=${GTM_BINARY_DIR}/${help}help
|
||||
)
|
||||
add_custom_command(
|
||||
OUTPUT ${help}help.dat ${help}help.gld
|
||||
DEPENDS ${GTM_SOURCE_DIR}/sr_unix/mumps.cmake mumps mupip
|
||||
${GTM_BINARY_DIR}/${help}help.in1
|
||||
${GTM_BINARY_DIR}/${help}help.in2
|
||||
COMMAND ${CMAKE_COMMAND} -E remove ${help}help.dat ${help}help.gld
|
||||
COMMAND ${CMAKE_COMMAND} ${env}
|
||||
-D mumps=$<TARGET_FILE:mumps> -D "args=-run;GDE"
|
||||
-D input_file=${GTM_BINARY_DIR}/${help}help.in1
|
||||
-P ${GTM_SOURCE_DIR}/sr_unix/mumps.cmake
|
||||
COMMAND ${CMAKE_COMMAND} ${env}
|
||||
-D mumps=$<TARGET_FILE:mupip> -D "args=create"
|
||||
-P ${GTM_SOURCE_DIR}/sr_unix/mumps.cmake
|
||||
COMMAND ${CMAKE_COMMAND} ${env}
|
||||
-D mumps=$<TARGET_FILE:mumps> -D "args=-direct"
|
||||
-D input_file=${GTM_BINARY_DIR}/${help}help.in2
|
||||
-P ${GTM_SOURCE_DIR}/sr_unix/mumps.cmake
|
||||
VERBATIM
|
||||
)
|
||||
list(APPEND files_to_place ${help}help.dat)
|
||||
install(FILES ${GTM_BINARY_DIR}/${help}help.dat DESTINATION ${GTM_INSTALL_DIR})
|
||||
endforeach()
|
||||
#-----------------------------------------------------------------------------
|
||||
|
||||
set(GTM_TOP "${GTM_BINARY_DIR}")
|
||||
configure_file(sr_unix/gpgagent.tab.in plugin/gpgagent.tab @ONLY)
|
||||
set(GTM_TOP "${CMAKE_INSTALL_PREFIX}/${GTM_INSTALL_DIR}")
|
||||
|
@ -541,64 +716,3 @@ install(FILES COPYING DESTINATION ${GTM_INSTALL_DIR})
|
|||
install(FILES sr_port/README.txt DESTINATION ${GTM_INSTALL_DIR})
|
||||
|
||||
add_custom_target(place_files ALL DEPENDS ${files_to_place})
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Generate files depending on gtm
|
||||
|
||||
# Copy generation routines to a working directory.
|
||||
foreach(m chk2lev.m chkop.m gendash.m genout.m loadop.m loadvx.m msg.m tttgen.m tttscan.m)
|
||||
add_custom_command(
|
||||
OUTPUT gen/${m}
|
||||
DEPENDS ${GTM_SOURCE_DIR}/sr_port/${m}
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${GTM_SOURCE_DIR}/sr_port/${m} ${GTM_BINARY_DIR}/gen/${m}
|
||||
)
|
||||
endforeach()
|
||||
|
||||
set(mumps_ttt_args -run tttgen
|
||||
${GTM_SOURCE_DIR}/sr_unix/ttt.txt
|
||||
${GTM_SOURCE_DIR}/sr_port/opcode_def.h
|
||||
${GTM_SOURCE_DIR}/sr_port/vxi.h
|
||||
)
|
||||
add_custom_command(
|
||||
OUTPUT gen/ttt.c
|
||||
DEPENDS ${GTM_SOURCE_DIR}/sr_unix/ttt.txt
|
||||
gen/chk2lev.m gen/chkop.m gen/gendash.m gen/genout.m gen/loadop.m
|
||||
gen/loadvx.m gen/tttgen.m gen/tttscan.m
|
||||
${GTM_SOURCE_DIR}/sr_unix/mumps.cmake mumps
|
||||
WORKING_DIRECTORY ${GTM_BINARY_DIR}/gen
|
||||
COMMAND ${CMAKE_COMMAND}
|
||||
-D gtm_dist=${GTM_BINARY_DIR}
|
||||
-D gtmroutines=.
|
||||
-D mumps=$<TARGET_FILE:mumps>
|
||||
-D "args=${mumps_ttt_args}"
|
||||
-D output_file=ttt.log
|
||||
-P ${GTM_SOURCE_DIR}/sr_unix/mumps.cmake
|
||||
VERBATIM
|
||||
)
|
||||
list(APPEND gen_bootstrap_files gen/ttt.c)
|
||||
|
||||
foreach(msg
|
||||
sr_port/cmerrors.msg
|
||||
sr_port/gdeerrors.msg
|
||||
sr_port/merrors.msg
|
||||
sr_unix_gnp/cmierrors.msg
|
||||
)
|
||||
get_filename_component(name ${msg} NAME_WE)
|
||||
set(mumps_msg_args -run msg ${GTM_SOURCE_DIR}/${msg} unix)
|
||||
add_custom_command(
|
||||
OUTPUT gen/${name}_ctl.c
|
||||
DEPENDS gen/msg.m ${GTM_SOURCE_DIR}/${msg}
|
||||
${GTM_SOURCE_DIR}/sr_unix/mumps.cmake mumps
|
||||
WORKING_DIRECTORY ${GTM_BINARY_DIR}/gen
|
||||
COMMAND ${CMAKE_COMMAND}
|
||||
-D gtm_dist=${GTM_BINARY_DIR}
|
||||
-D gtmroutines=.
|
||||
-D mumps=$<TARGET_FILE:mumps>
|
||||
-D "args=${mumps_msg_args}"
|
||||
-P ${GTM_SOURCE_DIR}/sr_unix/mumps.cmake
|
||||
VERBATIM
|
||||
)
|
||||
list(APPEND gen_bootstrap_files gen/${name}_ctl.c)
|
||||
endforeach()
|
||||
|
||||
add_custom_target(gen_bootstrap ALL DEPENDS ${gen_bootstrap_files})
|
||||
|
|
|
@ -10,15 +10,15 @@
|
|||
****************************************************************/
|
||||
|
||||
#ifdef __CYGWIN__
|
||||
#define GTM_RELEASE_NAME "GT.M V5.5-000 CYGWIN x86"
|
||||
#define GTM_RELEASE_NAME "GT.M V5.5-000A CYGWIN x86"
|
||||
#elif defined(__ia64)
|
||||
#define GTM_RELEASE_NAME "GT.M V5.5-000 Linux IA64"
|
||||
#define GTM_RELEASE_NAME "GT.M V5.5-000A Linux IA64"
|
||||
#elif defined(__x86_64__)
|
||||
#define GTM_RELEASE_NAME "GT.M V5.5-000 Linux x86_64"
|
||||
#define GTM_RELEASE_NAME "GT.M V5.5-000A Linux x86_64"
|
||||
#elif defined(__s390__)
|
||||
#define GTM_RELEASE_NAME "GT.M V5.5-000 Linux S390X"
|
||||
#define GTM_RELEASE_NAME "GT.M V5.5-000A Linux S390X"
|
||||
#else
|
||||
#define GTM_RELEASE_NAME "GT.M V5.5-000 Linux x86"
|
||||
#define GTM_RELEASE_NAME "GT.M V5.5-000A Linux x86"
|
||||
#endif
|
||||
#define GTM_PRODUCT "GT.M"
|
||||
#define GTM_VERSION "V5.5"
|
||||
|
|
|
@ -52,6 +52,10 @@ GBLREF unsigned char patch_comp_count;
|
|||
GBLREF cw_set_element cw_set[];
|
||||
GBLREF unsigned char *non_tp_jfb_buff_ptr;
|
||||
|
||||
error_def(ERR_DBRDONLY);
|
||||
error_def(ERR_DSEBLKRDFAIL);
|
||||
error_def(ERR_DSEFAIL);
|
||||
|
||||
void dse_rmrec(void)
|
||||
{
|
||||
block_id blk;
|
||||
|
@ -64,10 +68,6 @@ void dse_rmrec(void)
|
|||
short int size, i, rsize;
|
||||
srch_blk_status blkhist;
|
||||
|
||||
error_def(ERR_DBRDONLY);
|
||||
error_def(ERR_DSEBLKRDFAIL);
|
||||
error_def(ERR_DSEFAIL);
|
||||
|
||||
if (gv_cur_region->read_only)
|
||||
rts_error(VARLSTCNT(4) ERR_DBRDONLY, 2, DB_LEN_STR(gv_cur_region));
|
||||
CHECK_AND_RESET_UPDATE_ARRAY; /* reset update_array_ptr to update_array */
|
||||
|
@ -182,7 +182,7 @@ void dse_rmrec(void)
|
|||
rsize = r_top - key_top + SIZEOF(rec_hdr) + patch_comp_count - i;
|
||||
PUT_SHORT(&((rec_hdr_ptr_t)rp_base)->rsiz, rsize);
|
||||
memcpy(rp_base + SIZEOF(rec_hdr), &patch_comp_key[i], patch_comp_count - i);
|
||||
memcpy(rp_base + SIZEOF(rec_hdr) + patch_comp_count - i, key_top, b_top - key_top);
|
||||
memmove(rp_base + SIZEOF(rec_hdr) + patch_comp_count - i, key_top, b_top - key_top);
|
||||
((blk_hdr_ptr_t)lbp)->bsiz = (unsigned int)(rp_base + rsize - lbp + b_top - r_top);
|
||||
BLK_INIT(bs_ptr, bs1);
|
||||
BLK_SEG(bs_ptr, (uchar_ptr_t)lbp + SIZEOF(blk_hdr), ((blk_hdr_ptr_t)lbp)->bsiz - SIZEOF(blk_hdr));
|
||||
|
|
|
@ -33,7 +33,12 @@
|
|||
*/
|
||||
|
||||
#include "mdef.h"
|
||||
|
||||
/* If this is a pro build (meaning PRO_BUILD is defined), avoid the memcpy() override. That code is only
|
||||
* appropriate for a pure debug build.
|
||||
*/
|
||||
#ifdef PRO_BUILD
|
||||
# define BYPASS_MEMCPY_OVERRIDE /* Instruct gtm_string.h not to override memcpy() */
|
||||
#endif
|
||||
/* We are the redefined versions so use real versions in this module */
|
||||
#undef malloc
|
||||
#undef free
|
||||
|
@ -45,11 +50,11 @@
|
|||
#include <stddef.h>
|
||||
#include <errno.h>
|
||||
#if !defined(VMS) && !defined(__MVS__)
|
||||
#include <malloc.h>
|
||||
# include <malloc.h>
|
||||
#endif
|
||||
#include "gtm_stdio.h"
|
||||
#include "gtm_string.h"
|
||||
#include "gtm_stdlib.h"
|
||||
#include "gtm_string.h"
|
||||
|
||||
#include "eintr_wrappers.h"
|
||||
#include "gtmdbglvl.h"
|
||||
|
@ -67,8 +72,8 @@
|
|||
#include "gtm_malloc.h"
|
||||
#include "have_crit.h"
|
||||
#ifdef UNIX
|
||||
#include "gtmio.h"
|
||||
#include "deferred_signal_handler.h"
|
||||
# include "gtmio.h"
|
||||
# include "deferred_signal_handler.h"
|
||||
#endif
|
||||
|
||||
/* This routine is compiled twice, once as debug and once as pro and put into the same pro build. The alternative
|
||||
|
|
|
@ -0,0 +1,35 @@
|
|||
/****************************************************************
|
||||
* *
|
||||
* Copyright 2012 Fidelity Information Services, Inc *
|
||||
* *
|
||||
* This source code contains the intellectual property *
|
||||
* of its copyright holder(s), and is made available *
|
||||
* under a license. If you do not know the terms of *
|
||||
* the license, please stop and do not read further. *
|
||||
* *
|
||||
****************************************************************/
|
||||
|
||||
#include "mdef.h"
|
||||
#define BYPASS_MEMCPY_OVERRIDE /* Want to run original system memcpy() here */
|
||||
#include "gtm_string.h"
|
||||
|
||||
#include "gtm_memcpy_validate_and_execute.h"
|
||||
|
||||
#ifdef DEBUG /* Is only a debugging routine - nothing to see here for a production build - move along */
|
||||
|
||||
/* Identify memcpy() invocations that should be memmove() instead. If this routine assert fails, the arguments
|
||||
* overlap so should be converted to memmove(). One exception to that rule which is currently bypassed is when
|
||||
* source and target are equal. There are no known implementation of memcpy() that would break in such a
|
||||
* condition so since at least two of these currently exist in GT.M (one in gtmcrypt.h on UNIX and one in
|
||||
* mu_cre_file on VMS), this routine does not cause an assert fail in that case.
|
||||
*/
|
||||
void *gtm_memcpy_validate_and_execute(void *target, const void *src, size_t len)
|
||||
{
|
||||
if (target == src) /* Allow special case to go through but avoid actual memcpy() call */
|
||||
return target;
|
||||
assert(((char *)(target) > (char *)(src))
|
||||
? ((char *)(target) >= ((char *)(src) + (len)))
|
||||
: ((char *)(src) >= ((char *)(target) + (len))));
|
||||
return memcpy(target, src, len);
|
||||
}
|
||||
#endif
|
|
@ -0,0 +1,17 @@
|
|||
/****************************************************************
|
||||
* *
|
||||
* Copyright 2012 Fidelity Information Services, Inc *
|
||||
* *
|
||||
* This source code contains the intellectual property *
|
||||
* of its copyright holder(s), and is made available *
|
||||
* under a license. If you do not know the terms of *
|
||||
* the license, please stop and do not read further. *
|
||||
* *
|
||||
****************************************************************/
|
||||
|
||||
#ifndef GTM_MVAE_INCLUDED
|
||||
#define GTM_MVAE_INCLUDED
|
||||
|
||||
void *gtm_memcpy_validate_and_execute(void *target, const void *src, size_t len);
|
||||
|
||||
#endif
|
|
@ -1,6 +1,6 @@
|
|||
/****************************************************************
|
||||
* *
|
||||
* Copyright 2001, 2011 Fidelity Information Services, Inc *
|
||||
* Copyright 2001, 2012 Fidelity Information Services, Inc *
|
||||
* *
|
||||
* This source code contains the intellectual property *
|
||||
* of its copyright holder(s), and is made available *
|
||||
|
@ -15,9 +15,7 @@
|
|||
#ifndef GTM_STRINGH
|
||||
#define GTM_STRINGH
|
||||
|
||||
#ifndef __vax
|
||||
# include <string.h>
|
||||
#endif
|
||||
#include <string.h>
|
||||
|
||||
#define STRERROR strerror
|
||||
|
||||
|
@ -31,4 +29,15 @@
|
|||
#define STRNCMP_LIT_FULL(SOURCE, LITERAL) strncmp(SOURCE, LITERAL, SIZEOF(LITERAL)) /* BYPASSOK */
|
||||
#define STRNCMP_STR(SOURCE, STRING, LEN) strncmp(SOURCE, STRING, LEN)
|
||||
|
||||
/* We need to catch any memcpy() that is used when the source and target strings overlap in any fashion so we can change
|
||||
* them to a memmove. So in debug builds, assert fail if this is the case.
|
||||
*/
|
||||
#if defined(DEBUG) && !defined(BYPASS_MEMCPY_OVERRIDE)
|
||||
# include "gtm_memcpy_validate_and_execute.h"
|
||||
# ifdef memcpy
|
||||
# undef memcpy /* Some platforms like AIX create memcpy as a #define which needs removing before re-define */
|
||||
# endif
|
||||
# define memcpy(TARGET, SRC, LEN) gtm_memcpy_validate_and_execute((void *)(TARGET), (const void *)(SRC), (LEN))
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
|
@ -9,8 +9,10 @@
|
|||
* *
|
||||
****************************************************************/
|
||||
|
||||
|
||||
#include "mdef.h"
|
||||
#define BYPASS_MEMCPY_OVERRIDE /* Signals gtm_string.h to not override memcpy(). When this routine is linked into gtcm_pkdisp,
|
||||
* the assert in the routine called by memcpy macro causes the world to be pulled in. Avoid.
|
||||
*/
|
||||
/* Note that since this routine is called prior to reading environment vars or pretty much any
|
||||
* other initialization, we cannot use gtm_malloc() yet so care is taken to use the real system
|
||||
* malloc.
|
||||
|
|
|
@ -315,7 +315,7 @@ void op_tstart(int implicit_flag, ...) /* value of $T when TSTART */
|
|||
} else
|
||||
rts_error(VARLSTCNT(1) ERR_STACKCRIT);
|
||||
}
|
||||
memcpy(msp, old_sp, top - (unsigned char *)old_sp);
|
||||
memmove(msp, old_sp, top - (unsigned char *)old_sp); /* Shift stack w/possible overlapping ranges */
|
||||
mv_st_ent = (mv_stent *)(top - shift_size);
|
||||
mv_st_ent->mv_st_type = MVST_TPHOLD;
|
||||
ADJUST_FRAME_POINTER(frame_pointer, shift_size);
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/****************************************************************
|
||||
* *
|
||||
* Copyright 2001, 2011 Fidelity Information Services, Inc *
|
||||
* Copyright 2001, 2012 Fidelity Information Services, Inc *
|
||||
* *
|
||||
* This source code contains the intellectual property *
|
||||
* of its copyright holder(s), and is made available *
|
||||
|
@ -26,6 +26,9 @@ GBLREF mv_stent *mv_chain;
|
|||
GBLREF unsigned char *stackbase, *stacktop, *msp, *stackwarn;
|
||||
GBLREF stack_frame *frame_pointer;
|
||||
|
||||
error_def(ERR_STACKOFLOW);
|
||||
error_def(ERR_STACKCRIT);
|
||||
|
||||
int4 symbinit(void)
|
||||
{
|
||||
unsigned char *msp_save;
|
||||
|
@ -35,8 +38,6 @@ int4 symbinit(void)
|
|||
int4 shift_size, ls_size, temp_size;
|
||||
int size;
|
||||
unsigned char *old_sp, *top, *l_syms;
|
||||
error_def(ERR_STACKOFLOW);
|
||||
error_def(ERR_STACKCRIT);
|
||||
|
||||
if (frame_pointer->type & SFT_COUNT)
|
||||
{
|
||||
|
@ -91,7 +92,7 @@ int4 symbinit(void)
|
|||
} else
|
||||
rts_error(VARLSTCNT(1) ERR_STACKCRIT);
|
||||
}
|
||||
memcpy(msp, old_sp, top - (unsigned char *)old_sp);
|
||||
memmove(msp, old_sp, top - (unsigned char *)old_sp); /* Shift stack w/possible overlapping range */
|
||||
if (shift_size > MVST_STAB_SIZE)
|
||||
fp_prev->l_symtab = (ht_ent_mname **)(top - shift_size);
|
||||
l_syms = (unsigned char *)fp_prev->l_symtab;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/****************************************************************
|
||||
* *
|
||||
* Copyright 2001, 2009 Fidelity Information Services, Inc *
|
||||
* Copyright 2001, 2012 Fidelity Information Services, Inc *
|
||||
* *
|
||||
* This source code contains the intellectual property *
|
||||
* of its copyright holder(s), and is made available *
|
||||
|
@ -32,6 +32,11 @@ GBLREF gv_key *gv_altkey;
|
|||
GBLREF spdesc stringpool;
|
||||
GBLREF bool undef_inhibit;
|
||||
|
||||
error_def(ERR_BADSRVRNETMSG);
|
||||
error_def(ERR_UNIMPLOP);
|
||||
error_def(ERR_TEXT);
|
||||
error_def(ERR_GVIS);
|
||||
|
||||
void gvcmz_doop(unsigned char query_code, unsigned char reply_code, mval *v)
|
||||
{
|
||||
unsigned char *ptr;
|
||||
|
@ -41,11 +46,6 @@ void gvcmz_doop(unsigned char query_code, unsigned char reply_code, mval *v)
|
|||
unsigned char buff[MAX_ZWR_KEY_SZ], *end;
|
||||
unsigned short srv_buff_size;
|
||||
|
||||
error_def(ERR_BADSRVRNETMSG);
|
||||
error_def(ERR_UNIMPLOP);
|
||||
error_def(ERR_TEXT);
|
||||
error_def(ERR_GVIS);
|
||||
|
||||
lnk = gv_cur_region->dyn.addr->cm_blk;
|
||||
if (!((link_info *)lnk->usr)->server_supports_long_names && (PRE_V5_MAX_MIDENT_LEN < strlen((char *)gv_currkey->base)))
|
||||
{
|
||||
|
@ -218,7 +218,7 @@ void gvcmz_doop(unsigned char query_code, unsigned char reply_code, mval *v)
|
|||
v->mvtype = MV_STR;
|
||||
v->str.len = len;
|
||||
v->str.addr = (char *)stringpool.free; /* we don't need the reply msg anymore, can overwrite reply */
|
||||
memcpy(v->str.addr, ptr, len); /* so that we don't leave a gaping hole in the stringpool */
|
||||
memmove(v->str.addr, ptr, len); /* so that we don't leave a gaping hole in the stringpool */
|
||||
stringpool.free += len;
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -239,9 +239,9 @@ if [ -d "utf8" ]; then
|
|||
is64bit_gtm=`file mumps | grep "64-bit" | wc -l`
|
||||
fi
|
||||
if [ $is64bit_gtm -eq 1 ] ; then
|
||||
library_path="/usr/local/lib64 /usr/local/lib /usr/lib64 /usr/lib /lib64 /lib /usr/local/ssl/lib"
|
||||
library_path="/usr/local/lib64 /usr/local/lib /usr/lib64 /usr/lib /usr/lib/x86_64-linux-gnu /lib64 /lib /usr/local/ssl/lib"
|
||||
else
|
||||
library_path="/usr/local/lib32 /usr/local/lib /usr/lib32 /usr/lib /lib32 /lib"
|
||||
library_path="/usr/local/lib32 /usr/local/lib /usr/lib32 /usr/lib /usr/lib/i386-linux-gnu /lib32 /lib"
|
||||
fi
|
||||
$echo "Should UTF-8 support be installed? (y or n) \c"
|
||||
read resp
|
||||
|
@ -673,6 +673,7 @@ export gtm_chset
|
|||
|
||||
# Now work on UTF-8 mode
|
||||
if [ "$doutf8" -ne 0 ]; then
|
||||
(
|
||||
# Ensure we ARE in UTF-8 mode
|
||||
utflocale=`locale -a | grep -i en_us | grep -i utf | grep '8$'`
|
||||
if [ $arch = "zos" ]; then
|
||||
|
@ -704,8 +705,7 @@ if [ "$doutf8" -ne 0 ]; then
|
|||
fi
|
||||
(gtm_dist=$gtmdist/utf8; export gtm_dist; cd $gtm_dist; ./mumps -noignore *.m; $echo $?>>$gtmdist/compstat; \
|
||||
if [ $is64bit_gtm -eq 1 -o "linux" != $arch ] ; then $ldcmd $ldflags -o libgtmutil$ext *.o ; fi )
|
||||
gtm_chset="M"
|
||||
export gtm_chset
|
||||
)
|
||||
fi
|
||||
|
||||
# Change mode to executable for the normal binaries
|
||||
|
@ -754,7 +754,7 @@ export gtmgbldir
|
|||
|
||||
cat <<GDE.in1 | $gtmdist/mumps -direct
|
||||
Do ^GDE
|
||||
Change -segment DEFAULT -block=2048 -file=$gtmdist/gtmhelp.dat
|
||||
Change -segment DEFAULT -block=2048 -file=\$gtm_dist/gtmhelp.dat
|
||||
Change -region DEFAULT -record=1020 -key=255
|
||||
Exit
|
||||
GDE.in1
|
||||
|
@ -764,12 +764,12 @@ export gtmgbldir
|
|||
|
||||
cat <<GDE.in2 | $gtmdist/mumps -direct
|
||||
Do ^GDE
|
||||
Change -segment DEFAULT -block=2048 -file=$gtmdist/gdehelp.dat
|
||||
Change -segment DEFAULT -block=2048 -file=\$gtm_dist/gdehelp.dat
|
||||
Change -region DEFAULT -record=1020 -key=255
|
||||
Exit
|
||||
GDE.in2
|
||||
|
||||
other_object_files="CHK2LEV.o CHKOP.o GENDASH.o GENOUT.o GETNEAR.o GTMHELP.o GTMHLPLD.o LOAD.o LOADOP.o"
|
||||
other_object_files="CHK2LEV.o CHKOP.o GENDASH.o GENOUT.o GETNEAR.o GTMHLPLD.o LOAD.o LOADOP.o"
|
||||
other_object_files="$other_object_files LOADVX.o MSG.o TTTGEN.o TTTSCAN.o UNLOAD.o GTMDefinedTypesInit.o"
|
||||
csh_script_files=""
|
||||
if [ $arch = "zos" ]; then
|
||||
|
@ -901,7 +901,7 @@ if [ "$resp" = "Y" -o "$resp" = "y" ] ; then
|
|||
\rm -rf $binaries $pathmods $rscripts $nscripts $dirs configure \
|
||||
*.gtc gtm* gde* GDE*.o _*.m _*.o mumps.dat mumps.gld geteuid $other_object_files $csh_script_files lowerc_cp\
|
||||
esnecil *.hlp core *.h libgtmrpc.a *.m gdehelp.* COPYING README.txt
|
||||
\rm -rf GETPASS.o plugin PINENTRY.o
|
||||
\rm -rf GETPASS.o plugin PINENTRY.o GTMHELP.o
|
||||
if [ -d utf8 ]; then
|
||||
\rm -rf utf8
|
||||
fi
|
||||
|
|
|
@ -0,0 +1,63 @@
|
|||
set(I "")
|
||||
foreach(i ${includes})
|
||||
list(APPEND I "-I${i}")
|
||||
endforeach()
|
||||
file(WRITE tmp_xfer_1.c "
|
||||
/* We have not yet created gtm_threadgbl_deftypes.h and don't need it, signal gtm_threadgbl.h to avoid including it */
|
||||
#define NO_THREADGBL_DEFTYPES
|
||||
#include \"mdef.h\"
|
||||
#define XFER(a,b) MY_XF,b
|
||||
#include \"xfer.h\"
|
||||
")
|
||||
|
||||
execute_process(
|
||||
COMMAND ${CMAKE_C_COMPILER} ${I} -E tmp_xfer_1.c -o tmp_xfer_2.c
|
||||
RESULT_VARIABLE failed
|
||||
)
|
||||
if(failed)
|
||||
message(FATAL_ERROR "Preprocessing with ${CMAKE_C_COMPILER} failed")
|
||||
endif()
|
||||
file(STRINGS tmp_xfer_2.c lines REGEX "MY_XF")
|
||||
string(REGEX REPLACE "(MY_XF|,)" "" names "${lines}")
|
||||
file(REMOVE tmp_xfer_1.c tmp_xfer_2.c)
|
||||
|
||||
file(STRINGS "${CMAKE_CURRENT_SOURCE_DIR}/sources.list" sources)
|
||||
|
||||
set(ftypes "")
|
||||
#set(defines "")
|
||||
foreach(name ${names})
|
||||
set(ftype "")
|
||||
if(";${sources};" MATCHES ";([^;]*/${name}\\.s);")
|
||||
set(ftype GTM_ASM_RTN)
|
||||
elseif(";${sources};" MATCHES ";([^;]*/${name}\\.c);")
|
||||
file(STRINGS "${CMAKE_MATCH_1}" sig REGEX "${name}.*\\.\\.\\.")
|
||||
if(sig)
|
||||
set(ftype "GTM_C_VAR_ARGS_RTN")
|
||||
else()
|
||||
set(ftype "GTM_C_RTN")
|
||||
endif()
|
||||
endif()
|
||||
if(NOT ftype)
|
||||
set(ftype GTM_C_VAR_ARGS_RTN)
|
||||
foreach(src ${sources})
|
||||
if("${src}" MATCHES "\\.s$")
|
||||
file(STRINGS "${src}" sig REGEX "^${name}")
|
||||
if(sig)
|
||||
set(ftype GTM_ASM_RTN)
|
||||
break()
|
||||
endif()
|
||||
endif()
|
||||
endforeach()
|
||||
endif()
|
||||
set(ftypes "${ftypes}${ftype}, /* ${name} */ \\\n")
|
||||
#set(defines "${defines}#define ${name}_FUNCTYPE ${ftype}\n") # TODO for ia64
|
||||
endforeach()
|
||||
|
||||
file(WRITE xfer_desc.i "/* Generated by gen_xfer_desc.cmake */
|
||||
#define GTM_C_RTN 1
|
||||
#define GTM_ASM_RTN 2
|
||||
#define GTM_C_VAR_ARGS_RTN 3
|
||||
#define DEFINE_XFER_TABLE_DESC char xfer_table_desc[] = \\
|
||||
{ \\
|
||||
${ftypes}0}
|
||||
\n")
|
|
@ -1,6 +1,6 @@
|
|||
/****************************************************************
|
||||
* *
|
||||
* Copyright 2001, 2010 Fidelity Information Services, Inc *
|
||||
* Copyright 2001, 2012 Fidelity Information Services, Inc *
|
||||
* *
|
||||
* This source code contains the intellectual property *
|
||||
* of its copyright holder(s), and is made available *
|
||||
|
@ -10,6 +10,10 @@
|
|||
****************************************************************/
|
||||
|
||||
#include "mdef.h"
|
||||
|
||||
#define BYPASS_MEMCPY_OVERRIDE /* Signals gtm_string.h to not override memcpy(). This causes linking problems when libmumps.a
|
||||
* is not available.
|
||||
*/
|
||||
#include "main_pragma.h"
|
||||
|
||||
#undef UNIX /* Causes non-GTM-runtime routines (libgtmshr) to be used since libgtmshr is not yet available */
|
||||
|
@ -20,7 +24,6 @@
|
|||
#include "gtm_stdlib.h"
|
||||
#include "gtm_limits.h"
|
||||
#include <dlfcn.h>
|
||||
|
||||
#ifdef __osf__
|
||||
/* On OSF/1 (Digital Unix), pointers are 64 bits wide; the only exception to this is C programs for which one may
|
||||
* specify compiler and link editor options in order to use (and allocate) 32-bit pointers. However, since C is
|
||||
|
|
|
@ -419,8 +419,10 @@ fi
|
|||
tmp=`head -1 configure | cut -f 1`
|
||||
if [ "#!/bin/sh" != "$tmp" ] ; then
|
||||
echo "#!/bin/sh" >configure.sh
|
||||
cat configure >>configure.sh
|
||||
else
|
||||
cp configure configure.sh
|
||||
fi
|
||||
cat configure >>configure.sh
|
||||
chmod +x configure.sh
|
||||
|
||||
# Stop here if this is a dry run
|
||||
|
|
|
@ -10,7 +10,10 @@
|
|||
****************************************************************/
|
||||
|
||||
#include "mdef.h"
|
||||
/* We want system malloc, not gtm_malloc (which comes from mdef.h --> mdefsp.h). Since gtmsecshr_wrapper runs as root,
|
||||
#define BYPASS_MEMCPY_OVERRIDE /* Signals gtm_string.h to not override memcpy(). This causes linking problems when libmumps.a
|
||||
* is not available.
|
||||
*/
|
||||
#/* We want system malloc, not gtm_malloc (which comes from mdef.h --> mdefsp.h). Since gtmsecshr_wrapper runs as root,
|
||||
* using the system malloc will increase security over using gtm_malloc. Additionally, by not using gtm_malloc, we
|
||||
* are reducing code bloat.
|
||||
*/
|
||||
|
@ -26,7 +29,6 @@
|
|||
#include <malloc.h>
|
||||
#endif
|
||||
#include <errno.h>
|
||||
|
||||
#define ROOTUID 0
|
||||
#define ROOTGID 0
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
:
|
||||
#!/bin/sh
|
||||
#################################################################
|
||||
# #
|
||||
# Copyright 2001, 2005 Fidelity Information Services, Inc #
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
#!/bin/sh
|
||||
#################################################################
|
||||
# #
|
||||
# Copyright 2001, 2005 Fidelity Information Services, Inc #
|
||||
|
|
|
@ -13,15 +13,20 @@ foreach(v
|
|||
gtmroutines
|
||||
gtm_chset
|
||||
gtm_icu_version
|
||||
gtmgbldir
|
||||
)
|
||||
if(DEFINED ${v})
|
||||
set("ENV{${v}}" "${${v}}")
|
||||
endif()
|
||||
endforeach()
|
||||
if(input_file)
|
||||
set(input_file INPUT_FILE ${input_file})
|
||||
endif()
|
||||
if(output_file)
|
||||
set(output_file OUTPUT_FILE ${output_file})
|
||||
endif()
|
||||
execute_process(
|
||||
COMMAND ${mumps} ${args}
|
||||
${input_file}
|
||||
${output_file}
|
||||
)
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/****************************************************************
|
||||
* *
|
||||
* Copyright 2001, 2011 Fidelity Information Services, Inc *
|
||||
* Copyright 2001, 2012 Fidelity Information Services, Inc *
|
||||
* *
|
||||
* This source code contains the intellectual property *
|
||||
* of its copyright holder(s), and is made available *
|
||||
|
@ -10,7 +10,9 @@
|
|||
****************************************************************/
|
||||
|
||||
#include "mdef.h"
|
||||
|
||||
#define BYPASS_MEMCPY_OVERRIDE /* Signals gtm_string.h to not override memcpy(). The assert in the called routine ends
|
||||
* up pulling in the world in various executables so bypass for this routine.
|
||||
*/
|
||||
#include "gtm_string.h"
|
||||
#undef UNIX /* Cause non-GTM-runtime routines to be used since this is a standalone module */
|
||||
#include "gtm_stdio.h"
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
#!/bin/sh
|
||||
#################################################################
|
||||
# #
|
||||
# Copyright 2001, 2005 Fidelity Information Services, Inc #
|
||||
|
|
|
@ -1,275 +0,0 @@
|
|||
/* Generated by gen_xfer_desc.csh */
|
||||
#define GTM_C_RTN 1
|
||||
#define GTM_ASM_RTN 2
|
||||
#define GTM_C_VAR_ARGS_RTN 3
|
||||
#define DEFINE_XFER_TABLE_DESC char xfer_table_desc[] = \
|
||||
{ \
|
||||
GTM_ASM_RTN, /* op_sto */ \
|
||||
GTM_C_VAR_ARGS_RTN, /* op_cat */ \
|
||||
GTM_ASM_RTN, /* op_linefetch */ \
|
||||
GTM_ASM_RTN, /* op_linestart */ \
|
||||
GTM_ASM_RTN, /* mval2bool */ \
|
||||
GTM_C_VAR_ARGS_RTN, /* op_zbfetch */ \
|
||||
GTM_C_VAR_ARGS_RTN, /* op_zbstart */ \
|
||||
GTM_C_RTN, /* op_fnpiece */ \
|
||||
GTM_ASM_RTN, /* op_equ */ \
|
||||
GTM_C_RTN, /* op_write */ \
|
||||
GTM_C_RTN, /* op_kill */ \
|
||||
GTM_C_RTN, /* op_add */ \
|
||||
GTM_C_VAR_ARGS_RTN, /* op_getindx */ \
|
||||
GTM_C_VAR_ARGS_RTN, /* op_putindx */ \
|
||||
GTM_C_VAR_ARGS_RTN, /* op_gvnaked */ \
|
||||
GTM_ASM_RTN, /* opp_ret */ \
|
||||
GTM_ASM_RTN, /* op_numcmp */ \
|
||||
GTM_C_RTN, /* op_fnextract */ \
|
||||
GTM_C_VAR_ARGS_RTN, /* op_gvname */ \
|
||||
GTM_ASM_RTN, /* mval2mint */ \
|
||||
GTM_ASM_RTN, /* op_contain */ \
|
||||
GTM_C_RTN, /* op_wteol */ \
|
||||
GTM_C_RTN, /* op_gvget */ \
|
||||
GTM_C_VAR_ARGS_RTN, /* op_sub */ \
|
||||
GTM_C_RTN, /* op_fndata */ \
|
||||
GTM_C_VAR_ARGS_RTN, /* op_callw */ \
|
||||
GTM_ASM_RTN, /* op_extcall */ \
|
||||
GTM_ASM_RTN, /* op_forcenum */ \
|
||||
GTM_C_VAR_ARGS_RTN, /* op_srchindx */ \
|
||||
GTM_ASM_RTN, /* opp_newvar */ \
|
||||
GTM_ASM_RTN, /* op_extjmp */ \
|
||||
GTM_C_RTN, /* op_gvput */ \
|
||||
GTM_C_RTN, /* op_gvdata */ \
|
||||
GTM_C_RTN, /* op_fnlength */ \
|
||||
GTM_C_RTN, /* op_svget */ \
|
||||
GTM_ASM_RTN, /* opp_rterror */ \
|
||||
GTM_ASM_RTN, /* opp_commarg */ \
|
||||
GTM_C_RTN, /* op_gvnext */ \
|
||||
GTM_C_RTN, /* op_wttab */ \
|
||||
GTM_C_RTN, /* op_gvkill */ \
|
||||
GTM_C_RTN, /* op_read */ \
|
||||
GTM_ASM_RTN, /* op_neg */ \
|
||||
GTM_ASM_RTN, /* op_follow */ \
|
||||
GTM_C_RTN, /* op_wtone */ \
|
||||
GTM_C_VAR_ARGS_RTN, /* op_callb */ \
|
||||
GTM_ASM_RTN, /* mint2mval */ \
|
||||
GTM_ASM_RTN, /* op_forinit */ \
|
||||
GTM_ASM_RTN, /* op_forloop */ \
|
||||
GTM_C_RTN, /* flt_mod */ \
|
||||
GTM_C_RTN, /* op_fntext */ \
|
||||
GTM_C_RTN, /* op_fnnext */ \
|
||||
GTM_C_RTN, /* op_idiv */ \
|
||||
GTM_C_RTN, /* op_fnj2 */ \
|
||||
GTM_C_VAR_ARGS_RTN, /* op_fnchar */ \
|
||||
GTM_C_RTN, /* op_fnfind */ \
|
||||
GTM_ASM_RTN, /* opp_indset */ \
|
||||
GTM_C_RTN, /* op_fnascii */ \
|
||||
GTM_C_RTN, /* op_halt */ \
|
||||
GTM_C_RTN, /* op_mul */ \
|
||||
GTM_ASM_RTN, /* opp_indtext */ \
|
||||
GTM_ASM_RTN, /* opp_indglvn */ \
|
||||
GTM_C_RTN, /* op_killall */ \
|
||||
GTM_C_RTN, /* op_use */ \
|
||||
GTM_C_RTN, /* op_div */ \
|
||||
GTM_C_RTN, /* op_fnj3 */ \
|
||||
GTM_C_VAR_ARGS_RTN, /* op_forlcldol */ \
|
||||
GTM_C_VAR_ARGS_RTN, /* op_forlcldow */ \
|
||||
GTM_C_RTN, /* op_unlock */ \
|
||||
GTM_C_RTN, /* op_wtff */ \
|
||||
GTM_ASM_RTN, /* opp_break */ \
|
||||
GTM_C_VAR_ARGS_RTN, /* op_calll */ \
|
||||
GTM_C_RTN, /* op_close */ \
|
||||
GTM_ASM_RTN, /* op_currtn */ \
|
||||
GTM_C_RTN, /* op_lock */ \
|
||||
GTM_C_VAR_ARGS_RTN, /* gtm_fetch */ \
|
||||
GTM_C_RTN, /* op_fnfnumber */ \
|
||||
GTM_ASM_RTN, /* op_fnget */ \
|
||||
GTM_C_RTN, /* op_fngetdvi */ \
|
||||
GTM_C_RTN, /* op_fngetjpi */ \
|
||||
GTM_C_RTN, /* op_fngetsyi */ \
|
||||
GTM_C_RTN, /* op_fngvget */ \
|
||||
GTM_C_RTN, /* op_fnorder */ \
|
||||
GTM_C_RTN, /* op_fnrandom */ \
|
||||
GTM_C_RTN, /* op_fnzfile */ \
|
||||
GTM_C_RTN, /* op_fnzm */ \
|
||||
GTM_C_RTN, /* op_fnzparse */ \
|
||||
GTM_C_RTN, /* op_fnzpid */ \
|
||||
GTM_C_RTN, /* op_fnzpriv */ \
|
||||
GTM_C_RTN, /* op_fnzsearch */ \
|
||||
GTM_C_RTN, /* op_fnzsetprv */ \
|
||||
GTM_ASM_RTN, /* op_gettruth */ \
|
||||
GTM_C_RTN, /* op_zallocate */ \
|
||||
GTM_C_RTN, /* op_gvorder */ \
|
||||
GTM_C_RTN, /* op_hang */ \
|
||||
GTM_ASM_RTN, /* opp_hardret */ \
|
||||
GTM_ASM_RTN, /* opp_indfun */ \
|
||||
GTM_ASM_RTN, /* opp_indlvadr */ \
|
||||
GTM_C_VAR_ARGS_RTN, /* op_indname */ \
|
||||
GTM_ASM_RTN, /* opp_indpat */ \
|
||||
GTM_ASM_RTN, /* op_iretmvad */ \
|
||||
GTM_ASM_RTN, /* opp_iretmval */ \
|
||||
GTM_C_VAR_ARGS_RTN, /* op_job */ \
|
||||
GTM_C_RTN, /* op_labaddr */ \
|
||||
GTM_C_RTN, /* op_incrlock */ \
|
||||
GTM_C_RTN, /* op_decrlock */ \
|
||||
GTM_C_VAR_ARGS_RTN, /* op_lvpatwrite */ \
|
||||
GTM_C_VAR_ARGS_RTN, /* op_lvzwrite */ \
|
||||
GTM_C_RTN, /* op_open */ \
|
||||
GTM_C_RTN, /* op_fnpopulation */ \
|
||||
GTM_C_RTN, /* op_rdone */ \
|
||||
GTM_C_RTN, /* op_readfl */ \
|
||||
GTM_C_RTN, /* op_rhdaddr */ \
|
||||
GTM_C_RTN, /* op_setpiece */ \
|
||||
GTM_C_RTN, /* op_setzbrk */ \
|
||||
GTM_C_RTN, /* op_svput */ \
|
||||
GTM_C_VAR_ARGS_RTN, /* op_view */ \
|
||||
GTM_ASM_RTN, /* opp_xnew */ \
|
||||
GTM_ASM_RTN, /* opp_zcont */ \
|
||||
GTM_ASM_RTN, /* opp_zgoto */ \
|
||||
GTM_C_RTN, /* op_zlink */ \
|
||||
GTM_C_VAR_ARGS_RTN, /* op_zmess */ \
|
||||
GTM_C_RTN, /* op_zprint */ \
|
||||
GTM_C_RTN, /* op_zshow */ \
|
||||
GTM_C_RTN, /* op_zsystem */ \
|
||||
GTM_C_RTN, /* op_gvsavtarg */ \
|
||||
GTM_C_RTN, /* op_gvrectarg */ \
|
||||
GTM_C_RTN, /* op_igetsrc */ \
|
||||
GTM_C_RTN, /* op_fnzdate */ \
|
||||
GTM_C_RTN, /* op_fntranslate */ \
|
||||
GTM_C_VAR_ARGS_RTN, /* op_xkill */ \
|
||||
GTM_C_RTN, /* op_lkinit */ \
|
||||
GTM_C_RTN, /* op_zattach */ \
|
||||
GTM_C_RTN, /* op_zedit */ \
|
||||
GTM_ASM_RTN, /* op_restartpc */ \
|
||||
GTM_C_VAR_ARGS_RTN, /* op_gvextnam */ \
|
||||
GTM_C_RTN, /* op_fnzcall */ \
|
||||
GTM_C_VAR_ARGS_RTN, /* op_fnview */ \
|
||||
GTM_C_RTN, /* op_zdeallocate */ \
|
||||
GTM_ASM_RTN, /* opp_indlvarg */ \
|
||||
GTM_ASM_RTN, /* op_forchk1 */ \
|
||||
GTM_C_RTN, /* op_cvtparm */ \
|
||||
GTM_C_RTN, /* op_zprevious */ \
|
||||
GTM_C_RTN, /* op_fnzprevious */ \
|
||||
GTM_C_RTN, /* op_gvquery */ \
|
||||
GTM_C_VAR_ARGS_RTN, /* op_fnquery */ \
|
||||
GTM_C_VAR_ARGS_RTN, /* op_bindparm */ \
|
||||
GTM_ASM_RTN, /* op_retarg */ \
|
||||
GTM_ASM_RTN, /* op_exfun */ \
|
||||
GTM_ASM_RTN, /* op_extexfun */ \
|
||||
GTM_ASM_RTN, /* op_zhelp */ \
|
||||
GTM_C_RTN, /* op_fnp1 */ \
|
||||
GTM_ASM_RTN, /* opp_zg1 */ \
|
||||
GTM_ASM_RTN, /* opp_newintrinsic */ \
|
||||
GTM_C_RTN, /* op_gvzwithdraw */ \
|
||||
GTM_C_RTN, /* op_lvzwithdraw */ \
|
||||
GTM_ASM_RTN, /* op_pattern */ \
|
||||
GTM_C_RTN, /* op_nullexp */ \
|
||||
GTM_C_RTN, /* op_exfunret */ \
|
||||
GTM_C_RTN, /* op_fnlvname */ \
|
||||
GTM_C_VAR_ARGS_RTN, /* op_forlcldob */ \
|
||||
GTM_ASM_RTN, /* opp_indrzshow */ \
|
||||
GTM_C_VAR_ARGS_RTN, /* op_gvzwrite */ \
|
||||
GTM_C_RTN, /* op_zstep */ \
|
||||
GTM_ASM_RTN, /* mval2num */ \
|
||||
GTM_C_VAR_ARGS_RTN, /* op_lkname */ \
|
||||
GTM_C_RTN, /* op_fnztrnlnm */ \
|
||||
GTM_C_RTN, /* op_ztcommit */ \
|
||||
GTM_C_RTN, /* op_ztstart */ \
|
||||
GTM_ASM_RTN, /* op_equnul */ \
|
||||
GTM_C_RTN, /* op_fngetlki */ \
|
||||
GTM_C_RTN, /* op_fnzlkid */ \
|
||||
GTM_ASM_RTN, /* opp_indlvnamadr */ \
|
||||
GTM_C_VAR_ARGS_RTN, /* op_callspb */ \
|
||||
GTM_C_VAR_ARGS_RTN, /* op_callspw */ \
|
||||
GTM_C_VAR_ARGS_RTN, /* op_callspl */ \
|
||||
GTM_C_VAR_ARGS_RTN, /* op_iocontrol */ \
|
||||
GTM_C_VAR_ARGS_RTN, /* op_fnfgncal */ \
|
||||
GTM_C_RTN, /* op_zcompile */ \
|
||||
GTM_ASM_RTN, /* opp_tcommit */ \
|
||||
GTM_ASM_RTN, /* opp_trollback */ \
|
||||
GTM_ASM_RTN, /* opp_trestart */ \
|
||||
GTM_ASM_RTN, /* opp_tstart */ \
|
||||
GTM_C_RTN, /* op_exp */ \
|
||||
GTM_C_RTN, /* op_fnget2 */ \
|
||||
GTM_ASM_RTN, /* opp_indget */ \
|
||||
GTM_C_VAR_ARGS_RTN, /* op_fnname */ \
|
||||
GTM_ASM_RTN, /* opp_indfnname */ \
|
||||
GTM_C_RTN, /* op_fnlvprvname */ \
|
||||
GTM_C_RTN, /* op_gvo2 */ \
|
||||
GTM_C_RTN, /* op_fnlvnameo2 */ \
|
||||
GTM_C_RTN, /* op_fno2 */ \
|
||||
GTM_ASM_RTN, /* opp_indo2 */ \
|
||||
GTM_C_RTN, /* op_get_msf */ \
|
||||
GTM_C_RTN, /* op_dt_get */ \
|
||||
GTM_C_RTN, /* op_dt_store */ \
|
||||
GTM_C_RTN, /* op_dt_false */ \
|
||||
GTM_C_RTN, /* op_dt_true */ \
|
||||
GTM_C_RTN, /* op_fnzbitstr */ \
|
||||
GTM_C_RTN, /* op_fnzbitlen */ \
|
||||
GTM_C_RTN, /* op_fnzbitget */ \
|
||||
GTM_C_RTN, /* op_fnzbitset */ \
|
||||
GTM_C_RTN, /* op_fnzbitcoun */ \
|
||||
GTM_C_RTN, /* op_fnzbitfind */ \
|
||||
GTM_C_RTN, /* op_fnzbitnot */ \
|
||||
GTM_C_RTN, /* op_fnzbitand */ \
|
||||
GTM_C_RTN, /* op_fnzbitor */ \
|
||||
GTM_C_RTN, /* op_fnzbitxor */ \
|
||||
GTM_C_RTN, /* op_fgnlookup */ \
|
||||
GTM_ASM_RTN, /* op_sorts_after */ \
|
||||
GTM_C_RTN, /* op_fnzqgblmod */ \
|
||||
GTM_C_RTN, /* op_fngvget1 */ \
|
||||
GTM_C_RTN, /* op_fngvget2 */ \
|
||||
GTM_C_RTN, /* op_setp1 */ \
|
||||
GTM_C_RTN, /* op_setextract */ \
|
||||
GTM_ASM_RTN, /* opp_inddevparms */ \
|
||||
GTM_C_RTN, /* op_merge */ \
|
||||
GTM_C_RTN, /* op_merge_arg */ \
|
||||
GTM_ASM_RTN, /* opp_indmerge */ \
|
||||
GTM_C_VAR_ARGS_RTN, /* op_m_srchindx */ \
|
||||
GTM_C_RTN, /* op_fnstack1 */ \
|
||||
GTM_C_RTN, /* op_fnstack2 */ \
|
||||
GTM_C_RTN, /* op_fnqlength */ \
|
||||
GTM_C_RTN, /* op_fnqsubscript */ \
|
||||
GTM_C_RTN, /* op_fnreverse */ \
|
||||
GTM_ASM_RTN, /* opp_svput */ \
|
||||
GTM_C_RTN, /* op_fnzjobexam */ \
|
||||
GTM_C_RTN, /* op_fnzsigproc */ \
|
||||
GTM_C_RTN, /* op_fnincr */ \
|
||||
GTM_C_RTN, /* op_gvincr */ \
|
||||
GTM_ASM_RTN, /* opp_indincr */ \
|
||||
GTM_C_RTN, /* op_setzextract */ \
|
||||
GTM_C_RTN, /* op_setzp1 */ \
|
||||
GTM_C_RTN, /* op_setzpiece */ \
|
||||
GTM_C_VAR_ARGS_RTN, /* op_fnzascii */ \
|
||||
GTM_C_VAR_ARGS_RTN, /* op_fnzchar */ \
|
||||
GTM_ASM_RTN, /* op_fnzextract */ \
|
||||
GTM_C_VAR_ARGS_RTN, /* op_fnzfind */ \
|
||||
GTM_C_VAR_ARGS_RTN, /* op_fnzj2 */ \
|
||||
GTM_C_VAR_ARGS_RTN, /* op_fnzlength */ \
|
||||
GTM_C_RTN, /* op_fnzpopulation */ \
|
||||
GTM_C_RTN, /* op_fnzpiece */ \
|
||||
GTM_C_RTN, /* op_fnzp1 */ \
|
||||
GTM_C_VAR_ARGS_RTN, /* op_fnztranslate */ \
|
||||
GTM_C_VAR_ARGS_RTN, /* op_fnzconvert2 */ \
|
||||
GTM_C_VAR_ARGS_RTN, /* op_fnzconvert3 */ \
|
||||
GTM_C_RTN, /* op_fnzwidth */ \
|
||||
GTM_C_RTN, /* op_fnzsubstr */ \
|
||||
GTM_C_RTN, /* op_setals2als */ \
|
||||
GTM_C_RTN, /* op_setalsin2alsct */ \
|
||||
GTM_C_RTN, /* op_setalsctin2als */ \
|
||||
GTM_C_RTN, /* op_setalsct2alsct */ \
|
||||
GTM_C_RTN, /* op_killalias */ \
|
||||
GTM_C_RTN, /* op_killaliasall */ \
|
||||
GTM_C_RTN, /* op_fnzdata */ \
|
||||
GTM_C_RTN, /* op_clralsvars */ \
|
||||
GTM_C_RTN, /* op_fnzahandle */ \
|
||||
GTM_C_RTN, /* op_fnztrigger */ \
|
||||
GTM_C_RTN, /* op_exfunretals */ \
|
||||
GTM_C_RTN, /* op_setfnretin2als */ \
|
||||
GTM_C_RTN, /* op_setfnretin2alsct */ \
|
||||
GTM_C_RTN, /* op_zwritesvn */ \
|
||||
GTM_C_RTN, /* op_ztrigger */ \
|
||||
GTM_C_VAR_ARGS_RTN, /* op_rfrshindx */ \
|
||||
GTM_C_VAR_ARGS_RTN, /* op_savputindx */ \
|
||||
GTM_C_RTN, /* op_forfreeindx */ \
|
||||
GTM_C_RTN, /* op_fornestlvl */ \
|
||||
GTM_C_RTN, /* op_zhalt */ \
|
||||
0}
|
||||
|
Loading…
Reference in New Issue