diff --git a/mps/code/expgen.sh b/mps/code/expgen.sh deleted file mode 100755 index 78fd5a29c0d..00000000000 --- a/mps/code/expgen.sh +++ /dev/null @@ -1,203 +0,0 @@ -#!/bin/sh -# $Header$ -# -# Copyright (C) 2004-2005 Ravenbrook Limited. See end of file for license. -# -# expgen.sh -# -# Export Generator -# -# This is a script to generate the a list of exports that is required -# for Windows DLL creation. -# -# It processed the mps header files and produces a .DEF file that is -# suitable for use with the linker when producing a DLL file on Windows. -# -# When run, this script produces the following output files: -# expgen - a plain text list of functions declared in the header files. -# w3gen.def - a .def file suitable for use in the linker stage when -# building a Windows .DLL. -# -# Procedure for rebuilding a new w3gen.def -# -# This procedure should be carried out when the contents of w3gen.def -# would change. This is a bit tricky to say exactly when, but certainly -# when: -# a) new functions are declared in public header files. -# b) different header files are released to a client. -# -# Procedure: -# -# 0) Note: This procedure worked with gcc 3.3 "gcc (GCC) 3.3 20030304 -# (Apple Computer, Inc. build 1495)", running on Mac OS X 10.3. -# However, at 2005-10-12, with gcc 4.0 "gcc version 4.0.0 (Apple -# Computer, Inc. build 5026)", running on Mac OS X 10.4.2, it did not -# work. Invoking "gcc -fdump-translation-unit spong.h" did not produce -# a "spong.h.tu" file. -# -# 1) Ensure that the sources for w3gen.def are submitted. w3gen.def -# must be built from versioned sources. -# The sources are: -# expgen.sh -# w3build.bat -# all the headers that get included. -# For safety's sake better to ensure that no files are open: -# p4 opened ... -# should say '... - file(s) not opened on this client.' -# -# 2) Open w3gen.def for edit (making it writable) -# p4 open w3gen.def -# -# 3) Run this script. -# sh expgen.sh -# There should be no output when successful. -# -# 4) Eyeball the diff. -# p4 diff ... -# Check the that resulting diff is sane. For most changes it should -# just consist of a new symbol being included (plus some Header related -# junk). -# -# 5) Submit the change. -# p4 submit ... -# -# -# Design -# -# The script works by using the -fdump-translation-unit option of gcc. -# This produces a more easily parseable rendering of the header files. -# A fairly simple awk script is used to process the output. -# -# -# Dependencies -# -# This script currently depends fairly heavily on being run in a -# Unix-like environment with access to the GNU compiler. -# -# It's also fairly sensitive to changes in the undocumented format -# produced by gcc -fdump-translation-unit. Hopefully it is fairly easy -# to adapt to changes in this output. -# -# Assumes it can freely write to the files "fun", "name-s". -# -# -# Awk crash course -# -# Awk processes files line-by-line, thus the entire script is executed -# for each line of the input file (more complex awk scripts can control -# this using "next" and "getline" and so on). -# -# In awk $exp identifies a field within the line. $1 is the first -# field, $2 is the second and so on. $0 is the whole line. By default -# fields are separated by whitespace. -# -# string ~ RE is a matching expression and evaulated to true iff the -# string is matched by the regular expression. -# -# REFERENCES -# -# [SUSV3] Single UNIX Specification Version 3, -# http://www.unix.org/single_unix_specification/ -# -# For documenation of the standard utilities: sh, awk, join, sort, sed -# -# [MSDN-LINKER-DEF] Module-Definition (.def) files, -# http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore/html/_core_module.2d.definition_files.asp -# -# For documentation on the format of .def files. - -tu () { - # if invoked on a file called spong.h will produce a file named - # spong.h.tu - gcc -fdump-translation-unit -o /dev/null "$@" -} - -# This list of header files is produced by -# awk '/^copy.*\.h/{print $2}' w3build.bat -# followed by manual removal of mpsw3.h mpswin.h (which gcc on UNIX -# cannot parse). Also removed are mpsio.h mpslib.h as they defined -# interfaces that mps _uses_ not defines. Also removed is mpscmvff.h as -# it does not get included in mps.lib. Also removed is mpslibcb.h, -# which now has its own mpslibcb.def file (job002148). -# The functions declared in mpsw3.h have to be added to the .def file by -# hand later in this script. -f='mps.h -mpsavm.h -mpsacl.h -mpscamc.h -mpscams.h -mpscawl.h -mpsclo.h -mpscmv.h -mpscsnc.h -mpstd.h' - -tu $f - ->expgen - -for a in $f -do - >fun - awk ' - $2=="function_decl" && $7=="srcp:" && $8 ~ /^'$a':/ {print $4 >"fun"} - $2=="identifier_node"{print $1,$4} - ' $a.tu | - sort -k 1 >name-s - - echo ';' $a >>expgen - sort -k 1 fun | - join -o 2.2 - name-s >>expgen -done - -{ - printf '; %sHeader%s\n' '$' '$' - echo '; DO NOT EDIT. Automatically generated by $Header$' | sed 's/\$/!/g' - echo 'EXPORTS' - cat expgen - # This is where we manually the functions declared in mpsw3.h - echo ';' mpsw3.h - by hand - echo mps_SEH_filter - echo mps_SEH_handler -} > w3gen.def - - -# C. COPYRIGHT AND LICENSE -# -# Copyright (C) 2004-2005 Ravenbrook Limited . -# All rights reserved. This is an open source license. Contact -# Ravenbrook for commercial licensing options. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# -# 3. Redistributions in any form must be accompanied by information on how -# to obtain complete source code for this software and any accompanying -# software that uses this software. The source code must either be -# included in the distribution or be available for no more than the cost -# of distribution plus a nominal fee, and must be freely redistributable -# under reasonable conditions. For an executable file, complete source -# code means the source code for all modules it contains. It does not -# include source code for modules or files that typically accompany the -# major components of the operating system on which the executable file -# runs. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS -# IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED -# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR -# PURPOSE, OR NON-INFRINGEMENT, ARE DISCLAIMED. IN NO EVENT SHALL THE -# COPYRIGHT HOLDERS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF -# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/mps/code/w3gen.def b/mps/code/w3gen.def deleted file mode 100644 index 03ebba93c95..00000000000 --- a/mps/code/w3gen.def +++ /dev/null @@ -1,158 +0,0 @@ -; $Header$ -; --- EXTERNAL MPS FUNCTIONS --- -; This is a list of the external MPS functions (those a client -; might wish to call) present in the accompanying mps.lib library. -; This list is for the w3i3mv platform. -; -; If you wish to link with the MPS library AND re-export these -; functions from it (for example: so that other DLLs linked with -; your binary will also be able to make direct MPS calls), then -; you can specify: -; /def: -; to the MSVC LINK.EXE when you link your binary. -; -; This file was initially generated by !Header: //info.ravenbrook.com/project/mps/branch/2004-12-15/dll/code/expgen.sh#4 ! -; And since then has been hand-edited. (But the result should be -; identical (apart from ordering) to what expgen.sh would produce, -; were it run on these sources. See MPS job001935.) -EXPORTS -; mps.h -mps_ap_fill_with_reservoir_permit -mps_ap_fill -mps_commit -mps_reserve -mps_ap_destroy -mps_ap_create_v -mps_ap_create -mps_free -mps_alloc_v -mps_alloc -mps_chain_destroy -mps_chain_create -mps_pool_destroy -mps_pool_create_v -mps_pool_create -mps_fmt_destroy -mps_fmt_create_fixed -mps_fmt_create_auto_header -mps_fmt_create_B -mps_fmt_create_A -mps_arena_extend -mps_arena_has_addr -mps_addr_pool -mps_addr_fmt -mps_space_committed -mps_space_reserved -mps_arena_formatted_objects_walk -mps_arena_spare_commit_limit -mps_arena_spare_commit_limit_set -mps_arena_commit_limit_set -mps_arena_commit_limit -mps_arena_spare_committed -mps_arena_committed -mps_arena_reserved -mps_space_destroy -mps_space_create -mps_arena_destroy -mps_arena_create_v -mps_arena_create -mps_space_collect -mps_space_park -mps_space_release -mps_space_clamp -mps_arena_step -mps_arena_collect -mps_arena_start_collect -mps_arena_unsafe_restore_protection -mps_arena_unsafe_expose_remember_protection -mps_arena_expose -mps_arena_park -mps_arena_release -mps_arena_clamp -mps_telemetry_flush -mps_fix -mps_pool_check_fenceposts -mps_telemetry_label -mps_telemetry_intern -mps_telemetry_control -mps_alert_collection_set -mps_definalize -mps_finalize -mps_message_gc_not_condemned_size -mps_message_gc_condemned_size -mps_message_gc_live_size -mps_message_finalization_ref -mps_message_type -mps_message_queue_type -mps_message_discard -mps_message_get -mps_message_type_disable -mps_message_type_enable -mps_message_poll -mps_collections -mps_ld_isstale -mps_ld_merge -mps_ld_add -mps_ld_reset -mps_thread_dereg -mps_thread_reg -mps_tramp -mps_stack_scan_ambig -mps_root_destroy -mps_root_create_reg -mps_root_create_fmt -mps_root_create_table_masked -mps_root_create_table -mps_root_create -mps_reserve_with_reservoir_permit -mps_reservoir_available -mps_reservoir_limit -mps_arena_roots_walk -mps_reservoir_limit_set -mps_sac_empty -mps_pool_check_free_space -mps_sac_fill -mps_sac_flush -mps_sac_free -mps_sac_alloc -mps_sac_destroy -mps_sac_create -mps_rank_weak -mps_ap_alloc_pattern_reset -mps_rank_exact -mps_ap_alloc_pattern_end -mps_rank_ambig -mps_ap_alloc_pattern_begin -mps_alloc_pattern_ramp_collect_all -mps_alloc_pattern_ramp -mps_ap_trip -mps_ap_frame_pop -mps_ap_frame_push -; mpsavm.h -mps_arena_class_vmnz -mps_arena_class_vm -mps_arena_vm_growth -; mpsacl.h -mps_arena_class_cl -; mpscamc.h -mps_class_amc -mps_amc_apply -mps_class_amcz -; mpscams.h -mps_class_ams_debug -mps_class_ams -; mpscawl.h -mps_class_awl -; mpsclo.h -mps_class_lo -; mpscmv.h -mps_mv_size -mps_class_mv_debug -mps_mv_free_size -mps_class_mv -; mpscsnc.h -mps_class_snc -; mpstd.h -; mpsw3.h - by hand -mps_SEH_filter -mps_SEH_handler