mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-01-30 12:21:25 -08:00
Moving design documentation of signatures to design.mps.sig and updating tagging from code to be consistent.
This commit is contained in:
parent
8f49d8257c
commit
9fda23f4c6
45 changed files with 2431 additions and 2252 deletions
|
|
@ -55,7 +55,7 @@ typedef struct ABQStruct
|
|||
METER_DECL(peek)
|
||||
METER_DECL(delete)
|
||||
|
||||
Sig sig;
|
||||
Sig sig; /* design.mps.sig.field [FIXME: Why is this at the end? RB 2023-03-09] */
|
||||
} ABQStruct;
|
||||
|
||||
#endif /* abq_h */
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ DECLARE_CLASS(Arena, ClientArena, AbstractArena);
|
|||
|
||||
typedef struct ClientArenaStruct {
|
||||
ArenaStruct arenaStruct; /* generic arena structure */
|
||||
Sig sig; /* <design/sig> */
|
||||
Sig sig; /* design.mps.sig.field.end.outer */
|
||||
} ClientArenaStruct;
|
||||
typedef struct ClientArenaStruct *ClientArena;
|
||||
|
||||
|
|
@ -45,7 +45,7 @@ typedef struct ClientChunkStruct {
|
|||
ChunkStruct chunkStruct; /* generic chunk */
|
||||
Size freePages; /* number of free pages in chunk */
|
||||
Addr pageBase; /* base of first managed page in chunk */
|
||||
Sig sig; /* <design/sig> */
|
||||
Sig sig; /* design.mps.sig.field.end.outer */
|
||||
} ClientChunkStruct;
|
||||
|
||||
#define ClientChunk2Chunk(clchunk) (&(clchunk)->chunkStruct)
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ typedef struct VMChunkStruct {
|
|||
VMStruct vmStruct; /* virtual memory descriptor */
|
||||
Addr overheadMappedLimit; /* limit of pages mapped for overhead */
|
||||
SparseArrayStruct pages; /* to manage backing store of page table */
|
||||
Sig sig; /* <design/sig> */
|
||||
Sig sig; /* design.mps.sig.field.end.outer */
|
||||
} VMChunkStruct;
|
||||
|
||||
#define VMChunk2Chunk(vmchunk) (&(vmchunk)->chunkStruct)
|
||||
|
|
@ -78,7 +78,7 @@ typedef struct VMArenaStruct { /* VM arena structure */
|
|||
ArenaVMContractedCallback contracted;
|
||||
MFSStruct cbsBlockPoolStruct; /* stores blocks for CBSs */
|
||||
CBSStruct spareLandStruct; /* spare memory */
|
||||
Sig sig; /* <design/sig> */
|
||||
Sig sig; /* design.mps.sig.field.end.outer */
|
||||
} VMArenaStruct;
|
||||
|
||||
#define VMArenaVM(vmarena) (&(vmarena)->vmStruct)
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@
|
|||
|
||||
#define KeySig ((Sig)0x519CE111) /* SIGnature KEYyy */
|
||||
typedef struct mps_key_s {
|
||||
Sig sig;
|
||||
Sig sig; /* design.mps.sig.field */
|
||||
const char *name;
|
||||
Bool (*check)(Arg arg);
|
||||
} KeyStruct;
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@
|
|||
|
||||
typedef struct BootBlockStruct
|
||||
{
|
||||
Sig sig;
|
||||
Sig sig; /* design.mps.sig.field */
|
||||
void *base;
|
||||
void *alloc;
|
||||
void *limit;
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ typedef PoolDebugOptionsStruct *PoolDebugOptions;
|
|||
#define PoolDebugMixinSig ((Sig)0x519B0DB9) /* SIGnature POol DeBuG */
|
||||
|
||||
typedef struct PoolDebugMixinStruct {
|
||||
Sig sig;
|
||||
Sig sig; /* design.mps.sig.field */
|
||||
const struct AddrStruct *fenceTemplate;
|
||||
Size fenceSize;
|
||||
const struct AddrStruct *freeTemplate;
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ SRCID(lockan, "$Id$");
|
|||
|
||||
|
||||
typedef struct LockStruct { /* ANSI fake lock structure */
|
||||
Sig sig; /* <design/sig> */
|
||||
Sig sig; /* design.mps.sig.field */
|
||||
unsigned long claims; /* # claims held by owner */
|
||||
} LockStruct;
|
||||
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ SRCID(lockix, "$Id$");
|
|||
*/
|
||||
|
||||
typedef struct LockStruct {
|
||||
Sig sig; /* <design/sig> */
|
||||
Sig sig; /* design.mps.sig.field */
|
||||
unsigned long claims; /* # claims held by owner */
|
||||
pthread_mutex_t mut; /* the mutex itself */
|
||||
} LockStruct;
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ SRCID(lockw3, "$Id$");
|
|||
|
||||
/* .lock.win32: Win32 lock structure; uses CRITICAL_SECTION */
|
||||
typedef struct LockStruct {
|
||||
Sig sig; /* <design/sig> */
|
||||
Sig sig; /* design.mps.sig.field */
|
||||
unsigned long claims; /* # claims held by the owning thread */
|
||||
CRITICAL_SECTION cs; /* Win32's recursive lock thing */
|
||||
} LockStruct;
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ typedef struct GenDescStruct *GenDesc;
|
|||
#define GenDescSig ((Sig)0x5199E4DE) /* SIGnature GEN DEsc */
|
||||
|
||||
typedef struct GenDescStruct {
|
||||
Sig sig; /* <design/sig> */
|
||||
Sig sig; /* design.mps.sig.field */
|
||||
Serial serial; /* serial number within arena */
|
||||
ZoneSet zones; /* zoneset for this generation */
|
||||
Size capacity; /* capacity in bytes */
|
||||
|
|
@ -58,7 +58,7 @@ typedef struct GenDescStruct {
|
|||
#define PoolGenSig ((Sig)0x519B009E) /* SIGnature POOl GEn */
|
||||
|
||||
typedef struct PoolGenStruct {
|
||||
Sig sig;
|
||||
Sig sig; /* design.mps.sig.field */
|
||||
Pool pool; /* pool this belongs to */
|
||||
GenDesc gen; /* generation this belongs to */
|
||||
/* link in ring of all PoolGen's in this GenDesc (locus) */
|
||||
|
|
@ -81,7 +81,7 @@ typedef struct PoolGenStruct {
|
|||
#define ChainSig ((Sig)0x519C8A14) /* SIGnature CHAIN */
|
||||
|
||||
typedef struct mps_chain_s {
|
||||
Sig sig;
|
||||
Sig sig; /* design.mps.sig.field */
|
||||
Arena arena;
|
||||
RingStruct chainRing; /* list of chains in the arena */
|
||||
size_t genCount; /* number of generations */
|
||||
|
|
|
|||
|
|
@ -41,10 +41,7 @@
|
|||
* CLASS(ABCPool) returns a PoolClass pointing to a PoolClassStruct of
|
||||
* methods which implement the memory management policy for pool class
|
||||
* ABC.
|
||||
*
|
||||
* .class.end-sig: The class structure has a signature at the end. This
|
||||
* causes the compiler to complain if the class structure is extended
|
||||
* without modifying static initializers. */
|
||||
*/
|
||||
|
||||
#define PoolClassSig ((Sig)0x519C7A55) /* SIGnature pool CLASS */
|
||||
|
||||
|
|
@ -68,7 +65,7 @@ typedef struct mps_pool_class_s {
|
|||
PoolDebugMixinMethod debugMixin; /* find the debug mixin, if any */
|
||||
PoolSizeMethod totalSize; /* total memory allocated from arena */
|
||||
PoolSizeMethod freeSize; /* free memory (unused by client program) */
|
||||
Sig sig; /* .class.end-sig */
|
||||
Sig sig; /* design.mps.sig.field.end.class */
|
||||
} PoolClassStruct;
|
||||
|
||||
|
||||
|
|
@ -86,7 +83,7 @@ typedef struct mps_pool_class_s {
|
|||
|
||||
typedef struct mps_pool_s { /* generic structure */
|
||||
InstStruct instStruct;
|
||||
Sig sig; /* <design/sig> */
|
||||
Sig sig; /* design.mps.sig.field [FIXME: Why is this not at the end? RB 2023-03-09] */
|
||||
Serial serial; /* from arena->poolSerial */
|
||||
Arena arena; /* owning arena */
|
||||
RingStruct arenaRing; /* link in list of pools in arena */
|
||||
|
|
@ -122,7 +119,7 @@ typedef struct MFSStruct { /* MFS outer structure */
|
|||
Size total; /* total size allocated from arena */
|
||||
Size free; /* free space in pool */
|
||||
RingStruct extentRing; /* ring of extents in pool */
|
||||
Sig sig; /* <design/sig> */
|
||||
Sig sig; /* design.mps.sig.field.end.outer */
|
||||
} MFSStruct;
|
||||
|
||||
|
||||
|
|
@ -135,7 +132,7 @@ typedef struct MFSStruct { /* MFS outer structure */
|
|||
#define MessageClassSig ((Sig)0x519359c1) /* SIGnature MeSsaGe CLass */
|
||||
|
||||
typedef struct MessageClassStruct {
|
||||
Sig sig; /* <design/sig> */
|
||||
Sig sig; /* design.mps.sig.field */
|
||||
const char *name; /* Human readable Class name */
|
||||
|
||||
MessageType type; /* Message Type */
|
||||
|
|
@ -164,7 +161,7 @@ typedef struct MessageClassStruct {
|
|||
* <design/message#.message.struct>. */
|
||||
|
||||
typedef struct mps_message_s {
|
||||
Sig sig; /* <design/sig> */
|
||||
Sig sig; /* design.mps.sig.field */
|
||||
Arena arena; /* owning arena */
|
||||
MessageClass klass; /* Message Class Structure */
|
||||
Clock postedClock; /* mps_clock() at post time, or 0 */
|
||||
|
|
@ -208,7 +205,7 @@ typedef struct SegClassStruct {
|
|||
SegFixMethod fixEmergency; /* as fix, no failure allowed */
|
||||
SegReclaimMethod reclaim; /* reclaim dead objects after tracing */
|
||||
SegWalkMethod walk; /* walk over a segment */
|
||||
Sig sig; /* .class.end-sig */
|
||||
Sig sig; /* design.mps.sig.field.end.class */
|
||||
} SegClassStruct;
|
||||
|
||||
|
||||
|
|
@ -221,7 +218,7 @@ typedef struct SegClassStruct {
|
|||
|
||||
typedef struct SegStruct { /* segment structure */
|
||||
InstStruct instStruct;
|
||||
Sig sig; /* <code/misc.h#sig> */
|
||||
Sig sig; /* design.mps.sig.field [FIXME: should be at end? RB 2023-03-09] */
|
||||
Tract firstTract; /* first tract of segment */
|
||||
RingStruct poolRing; /* link in list of segs in pool */
|
||||
Addr limit; /* limit of segment */
|
||||
|
|
@ -250,7 +247,7 @@ typedef struct GCSegStruct { /* GC segment structure */
|
|||
RefSet summary; /* summary of references out of seg */
|
||||
Buffer buffer; /* non-NULL if seg is buffered */
|
||||
RingStruct genRing; /* link in list of segs in gen */
|
||||
Sig sig; /* <design/sig> */
|
||||
Sig sig; /* design.mps.sig.field.end.outer */
|
||||
} GCSegStruct;
|
||||
|
||||
|
||||
|
|
@ -264,7 +261,7 @@ typedef struct GCSegStruct { /* GC segment structure */
|
|||
#define LocusPrefSig ((Sig)0x51970CB6) /* SIGnature LOCus PRef */
|
||||
|
||||
typedef struct LocusPrefStruct { /* locus placement preferences */
|
||||
Sig sig; /* <code/misc.h#sig> */
|
||||
Sig sig; /* design.mps.sig.field */
|
||||
Bool high; /* high or low */
|
||||
ZoneSet zones; /* preferred zones */
|
||||
ZoneSet avoid; /* zones to avoid */
|
||||
|
|
@ -292,7 +289,7 @@ typedef struct BufferClassStruct {
|
|||
BufferRankSetMethod rankSet; /* rank set of buffer */
|
||||
BufferSetRankSetMethod setRankSet; /* change rank set of buffer */
|
||||
BufferReassignSegMethod reassignSeg; /* change seg of attached buffer */
|
||||
Sig sig; /* .class.end-sig */
|
||||
Sig sig; /* design.mps.sig.field.end.class */
|
||||
} BufferClassStruct;
|
||||
|
||||
|
||||
|
|
@ -310,7 +307,7 @@ typedef struct BufferClassStruct {
|
|||
|
||||
typedef struct BufferStruct {
|
||||
InstStruct instStruct;
|
||||
Sig sig; /* <design/sig> */
|
||||
Sig sig; /* design.mps.sig.field [FIXME: Why is this not at the end? RB 2023-03-09] */
|
||||
Serial serial; /* from pool->bufferSerial */
|
||||
Arena arena; /* owning arena */
|
||||
Pool pool; /* owning pool */
|
||||
|
|
@ -339,7 +336,7 @@ typedef struct SegBufStruct {
|
|||
BufferStruct bufferStruct; /* superclass fields must come first */
|
||||
RankSet rankSet; /* ranks of references being created */
|
||||
Seg seg; /* segment being buffered */
|
||||
Sig sig; /* <design/sig> */
|
||||
Sig sig; /* design.mps.sig.field.end.outer */
|
||||
} SegBufStruct;
|
||||
|
||||
|
||||
|
|
@ -353,7 +350,7 @@ typedef struct SegBufStruct {
|
|||
#define FormatSig ((Sig)0x519F63A2) /* Signature FoRMAT */
|
||||
|
||||
typedef struct mps_fmt_s {
|
||||
Sig sig;
|
||||
Sig sig; /* design.mps.sig.field */
|
||||
Serial serial; /* from arena->formatSerial */
|
||||
Arena arena; /* owning arena */
|
||||
RingStruct arenaRing; /* formats are attached to the arena */
|
||||
|
|
@ -399,7 +396,7 @@ typedef struct mps_fmt_s {
|
|||
#define ScanStateSig ((Sig)0x5195CA45) /* SIGnature SCAN State */
|
||||
|
||||
typedef struct ScanStateStruct {
|
||||
Sig sig; /* <design/sig> */
|
||||
Sig sig; /* design.mps.sig.field */
|
||||
struct mps_ss_s ss_s; /* .ss <http://bash.org/?400459> */
|
||||
Arena arena; /* owning arena */
|
||||
mps_fmt_scan_t formatScan; /* callback for scanning formatted objects */
|
||||
|
|
@ -428,7 +425,7 @@ typedef struct ScanStateStruct {
|
|||
#define TraceSig ((Sig)0x51924ACE) /* SIGnature TRACE */
|
||||
|
||||
typedef struct TraceStruct {
|
||||
Sig sig; /* <design/sig> */
|
||||
Sig sig; /* design.mps.sig.field */
|
||||
TraceId ti; /* index into TraceSets */
|
||||
Arena arena; /* owning arena */
|
||||
TraceStartWhy why; /* why the trace began */
|
||||
|
|
@ -492,7 +489,7 @@ typedef struct mps_arena_class_s {
|
|||
ArenaCompactMethod compact;
|
||||
ArenaPagesMarkAllocatedMethod pagesMarkAllocated;
|
||||
ArenaChunkPageMappedMethod chunkPageMapped;
|
||||
Sig sig;
|
||||
Sig sig; /* design.mps.sig.field.end.class */
|
||||
} ArenaClassStruct;
|
||||
|
||||
|
||||
|
|
@ -506,7 +503,7 @@ typedef struct mps_arena_class_s {
|
|||
#define GlobalsSig ((Sig)0x519970BA) /* SIGnature GLOBAls */
|
||||
|
||||
typedef struct GlobalsStruct {
|
||||
Sig sig;
|
||||
Sig sig; /* design.mps.sig.field */
|
||||
|
||||
/* general fields <code/global.c> */
|
||||
RingStruct globalRing; /* node in global ring of arenas */
|
||||
|
|
@ -564,7 +561,7 @@ typedef struct LandClassStruct {
|
|||
LandFindMethod findLast; /* find last range of given size */
|
||||
LandFindMethod findLargest; /* find largest range */
|
||||
LandFindInZonesMethod findInZones; /* find first range of given size in zone set */
|
||||
Sig sig; /* .class.end-sig */
|
||||
Sig sig; /* design.mps.sig.field.end.class */
|
||||
} LandClassStruct;
|
||||
|
||||
|
||||
|
|
@ -577,7 +574,7 @@ typedef struct LandClassStruct {
|
|||
|
||||
typedef struct LandStruct {
|
||||
InstStruct instStruct;
|
||||
Sig sig; /* <design/sig> */
|
||||
Sig sig; /* design.mps.sig.field */
|
||||
Arena arena; /* owning arena */
|
||||
Align alignment; /* alignment of addresses */
|
||||
Bool inLand; /* prevent reentrance */
|
||||
|
|
@ -604,7 +601,7 @@ typedef struct CBSStruct {
|
|||
Size size; /* total size of ranges in CBS */
|
||||
/* meters for sizes of search structures at each op */
|
||||
METER_DECL(treeSearch)
|
||||
Sig sig; /* .class.end-sig */
|
||||
Sig sig; /* design.mps.sig.field.end.outer */
|
||||
} CBSStruct;
|
||||
|
||||
|
||||
|
|
@ -622,7 +619,7 @@ typedef struct FailoverStruct {
|
|||
LandStruct landStruct; /* superclass fields come first */
|
||||
Land primary; /* use this land normally */
|
||||
Land secondary; /* but use this one if primary fails */
|
||||
Sig sig; /* .class.end-sig */
|
||||
Sig sig; /* design.mps.sig.field.end.outer */
|
||||
} FailoverStruct;
|
||||
|
||||
|
||||
|
|
@ -643,7 +640,7 @@ typedef struct FreelistStruct {
|
|||
FreelistBlock list; /* first block in list or NULL if empty */
|
||||
Count listSize; /* number of blocks in list */
|
||||
Size size; /* total size of ranges in list */
|
||||
Sig sig; /* .class.end-sig */
|
||||
Sig sig; /* design.mps.sig.field.end.outer */
|
||||
} FreelistStruct;
|
||||
|
||||
|
||||
|
|
@ -669,7 +666,7 @@ typedef struct SortStruct {
|
|||
#define ShieldSig ((Sig)0x519581E1) /* SIGnature SHEILd */
|
||||
|
||||
typedef struct ShieldStruct {
|
||||
Sig sig; /* <design/sig> */
|
||||
Sig sig; /* design.mps.sig.field */
|
||||
BOOLFIELD(inside); /* <design/shield#.def.inside> */
|
||||
BOOLFIELD(suspended); /* mutator suspended? */
|
||||
BOOLFIELD(queuePending); /* queue insertion pending? */
|
||||
|
|
@ -692,7 +689,7 @@ typedef struct ShieldStruct {
|
|||
#define HistorySig ((Sig)0x51981520) /* SIGnature HISTOry */
|
||||
|
||||
typedef struct HistoryStruct {
|
||||
Sig sig; /* <design/sig> */
|
||||
Sig sig; /* design.mps.sig.field */
|
||||
Epoch epoch; /* <design/arena#.ld.epoch> */
|
||||
RefSet prehistory; /* <design/arena#.ld.prehistory> */
|
||||
RefSet history[LDHistoryLENGTH]; /* <design/arena#.ld.history> */
|
||||
|
|
@ -724,7 +721,7 @@ typedef struct MVFFStruct { /* MVFF pool outer structure */
|
|||
FailoverStruct foStruct; /* free memory (fail-over mechanism) */
|
||||
Bool firstFit; /* as opposed to last fit */
|
||||
Bool slotHigh; /* prefers high part of large block */
|
||||
Sig sig; /* <design/sig> */
|
||||
Sig sig; /* design.mps.sig.field.end.outer */
|
||||
} MVFFStruct;
|
||||
|
||||
|
||||
|
|
@ -819,7 +816,7 @@ typedef struct mps_arena_s {
|
|||
void *stackWarm; /* NULL or stack pointer warmer than
|
||||
mutator state. */
|
||||
|
||||
Sig sig;
|
||||
Sig sig; /* design.mps.sig.field.end.outer */
|
||||
} ArenaStruct;
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@
|
|||
|
||||
/* TYPES */
|
||||
|
||||
typedef unsigned long Sig; /* <design/sig> */
|
||||
typedef unsigned long Sig; /* design.mps.sig */
|
||||
typedef int Res; /* <design/type#.res> */
|
||||
|
||||
typedef void (*Fun)(void); /* <design/type#.fun> */
|
||||
|
|
@ -262,7 +262,7 @@ typedef Res (*LandFindInZonesMethod)(Bool *foundReturn, Range rangeReturn, Range
|
|||
/* CONSTANTS */
|
||||
|
||||
|
||||
/* <design/sig> */
|
||||
/* design.mps.sig */
|
||||
#define SigInvalid ((Sig)0x51915BAD) /* SIGnature IS BAD */
|
||||
|
||||
#define SizeMAX ((Size)-1)
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ typedef struct NailboardStruct *Nailboard;
|
|||
* each function call by the owner.) newNails would fit in 1 bit.
|
||||
*/
|
||||
typedef struct NailboardStruct {
|
||||
Sig sig;
|
||||
Sig sig; /* design.mps.sig.field */
|
||||
RangeStruct range; /* range of addresses covered by nailboard */
|
||||
Count levels; /* number of levels */
|
||||
Shift alignShift; /* shift due to address alignment */
|
||||
|
|
|
|||
|
|
@ -105,7 +105,7 @@ Res PoolAbsInit(Pool pool, Arena arena, PoolClass klass, ArgList args)
|
|||
pool->serial = ArenaGlobals(arena)->poolSerial;
|
||||
++ArenaGlobals(arena)->poolSerial;
|
||||
|
||||
/* Initialise signature last; see <design/sig> */
|
||||
/* Initialise signature last; see design.mps.sig.init */
|
||||
SetClassOfPoly(pool, CLASS(AbstractPool));
|
||||
pool->sig = PoolSig;
|
||||
AVERT(Pool, pool);
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ typedef struct amcGenStruct {
|
|||
PoolGenStruct pgen;
|
||||
RingStruct amcRing; /* link in list of gens in pool */
|
||||
Buffer forward; /* forwarding buffer */
|
||||
Sig sig; /* <code/misc.h#sig> */
|
||||
Sig sig; /* design.mps.sig.field.end.outer */
|
||||
} amcGenStruct;
|
||||
|
||||
#define amcGenAMC(amcgen) MustBeA(AMCZPool, (amcgen)->pgen.pool)
|
||||
|
|
@ -113,7 +113,7 @@ typedef struct amcSegStruct {
|
|||
BOOLFIELD(accountedAsBuffered); /* .seg.accounted-as-buffered */
|
||||
BOOLFIELD(old); /* .seg.old */
|
||||
BOOLFIELD(deferred); /* .seg.deferred */
|
||||
Sig sig; /* <code/misc.h#sig> */
|
||||
Sig sig; /* design.mps.sig.field.end.outer */
|
||||
} amcSegStruct;
|
||||
|
||||
|
||||
|
|
@ -422,7 +422,7 @@ typedef struct AMCStruct { /* <design/poolamc#.struct> */
|
|||
amcPinnedFunction pinned; /* function determining if block is pinned */
|
||||
Size extendBy; /* segment size to extend pool by */
|
||||
Size largeSize; /* min size of "large" segments */
|
||||
Sig sig; /* <design/pool#.outer-structure.sig> */
|
||||
Sig sig; /* design.mps.sig.field.end.outer */
|
||||
} AMCStruct;
|
||||
|
||||
|
||||
|
|
@ -457,7 +457,7 @@ typedef struct amcBufStruct {
|
|||
SegBufStruct segbufStruct; /* superclass fields must come first */
|
||||
amcGen gen; /* The AMC generation */
|
||||
Bool forHashArrays; /* allocates hash table arrays, see AMCBufferFill */
|
||||
Sig sig; /* <design/sig> */
|
||||
Sig sig; /* design.mps.sig.field.end.outer */
|
||||
} amcBufStruct;
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ typedef struct AMSStruct {
|
|||
AMSSegsDestroyFunction segsDestroy;
|
||||
AMSSegClassFunction segClass;/* fn to get the class for segments */
|
||||
Bool shareAllocTable; /* the alloc table is also used as white table */
|
||||
Sig sig; /* <design/pool#.outer-structure.sig> */
|
||||
Sig sig; /* design.mps.sig.field.end.outer */
|
||||
} AMSStruct;
|
||||
|
||||
|
||||
|
|
@ -69,7 +69,7 @@ typedef struct AMSSegStruct {
|
|||
Bool colourTablesInUse;/* the colour tables are in use */
|
||||
BT nonwhiteTable; /* set if grain not white */
|
||||
BT nongreyTable; /* set if not first grain of grey object */
|
||||
Sig sig;
|
||||
Sig sig; /* design.mps.sig.field.end.outer */
|
||||
} AMSSegStruct;
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -102,7 +102,7 @@ typedef struct AWLPoolStruct {
|
|||
Count succAccesses; /* number of successive single accesses */
|
||||
FindDependentFunction findDependent; /* to find a dependent object */
|
||||
awlStatTotalStruct stats;
|
||||
Sig sig; /* <code/misc.h#sig> */
|
||||
Sig sig; /* design.mps.sig.field.end.outer */
|
||||
} AWLPoolStruct, *AWL;
|
||||
|
||||
|
||||
|
|
@ -138,7 +138,7 @@ typedef struct AWLSegStruct {
|
|||
Count oldGrains; /* grains allocated prior to last collection */
|
||||
Count singleAccesses; /* number of accesses processed singly */
|
||||
awlStatSegStruct stats;
|
||||
Sig sig; /* <code/misc.h#sig> */
|
||||
Sig sig; /* design.mps.sig.field.end.outer */
|
||||
} AWLSegStruct, *AWLSeg;
|
||||
|
||||
DECLARE_CLASS(Seg, AWLSeg, MutatorSeg);
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ typedef struct LOStruct {
|
|||
PoolStruct poolStruct; /* generic pool structure */
|
||||
PoolGenStruct pgenStruct; /* generation representing the pool */
|
||||
PoolGen pgen; /* NULL or pointer to pgenStruct */
|
||||
Sig sig; /* <code/misc.h#sig> */
|
||||
Sig sig; /* design.mps.sig.field.end.outer */
|
||||
} LOStruct;
|
||||
|
||||
typedef LO LOPool;
|
||||
|
|
@ -59,7 +59,7 @@ typedef struct LOSegStruct {
|
|||
Count bufferedGrains; /* grains in buffers */
|
||||
Count newGrains; /* grains allocated since last collection */
|
||||
Count oldGrains; /* grains allocated prior to last collection */
|
||||
Sig sig; /* <code/misc.h#sig> */
|
||||
Sig sig; /* design.mps.sig.field.end.outer */
|
||||
} LOSegStruct;
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -107,7 +107,7 @@ typedef struct MRGStruct {
|
|||
RingStruct freeRing; /* <design/poolmrg#.poolstruct.free> */
|
||||
RingStruct refRing; /* <design/poolmrg#.poolstruct.refring> */
|
||||
Size extendBy; /* <design/poolmrg#.extend> */
|
||||
Sig sig; /* <code/mps.h#sig> */
|
||||
Sig sig; /* design.mps.sig.field.end.outer */
|
||||
} MRGStruct;
|
||||
|
||||
typedef MRG MRGPool;
|
||||
|
|
@ -143,14 +143,14 @@ typedef struct MRGRefSegStruct *MRGRefSeg;
|
|||
typedef struct MRGLinkSegStruct {
|
||||
SegStruct segStruct; /* superclass fields must come first */
|
||||
MRGRefSeg refSeg; /* <design/poolmrg#.mrgseg.link.refseg> */
|
||||
Sig sig; /* <code/misc.h#sig> */
|
||||
Sig sig; /* design.mps.sig.field.end.outer */
|
||||
} MRGLinkSegStruct;
|
||||
|
||||
typedef struct MRGRefSegStruct {
|
||||
GCSegStruct gcSegStruct; /* superclass fields must come first */
|
||||
RingStruct mrgRing; /* <design/poolmrg#.mrgseg.ref.segring> */
|
||||
MRGLinkSeg linkSeg; /* <design/poolmrg#.mrgseg.ref.linkseg> */
|
||||
Sig sig; /* <code/misc.h#sig> */
|
||||
Sig sig; /* design.mps.sig.field.end.outer */
|
||||
} MRGRefSegStruct;
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -132,7 +132,7 @@ typedef struct MVTStruct
|
|||
METER_DECL(exceptionSplinters)
|
||||
METER_DECL(exceptionReturns)
|
||||
|
||||
Sig sig;
|
||||
Sig sig; /* design.mps.sig.field.end.outer */
|
||||
} MVTStruct;
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ SRCID(poolsnc, "$Id$");
|
|||
typedef struct SNCStruct {
|
||||
PoolStruct poolStruct;
|
||||
Seg freeSegs;
|
||||
Sig sig;
|
||||
Sig sig; /* design.mps.sig.field.end.outer */
|
||||
} SNCStruct, *SNC;
|
||||
|
||||
#define PoolSNC(pool) PARENT(SNCStruct, poolStruct, (pool))
|
||||
|
|
@ -78,7 +78,7 @@ typedef struct SNCBufStruct *SNCBuf;
|
|||
typedef struct SNCBufStruct {
|
||||
SegBufStruct segBufStruct; /* superclass fields must come first */
|
||||
Seg topseg; /* The segment chain head -- may be NULL */
|
||||
Sig sig; /* <design/sig> */
|
||||
Sig sig; /* design.mps.sig.field.end.outer */
|
||||
} SNCBufStruct;
|
||||
|
||||
|
||||
|
|
@ -182,7 +182,7 @@ typedef struct SNCSegStruct *SNCSeg;
|
|||
typedef struct SNCSegStruct {
|
||||
GCSegStruct gcSegStruct; /* superclass fields must come first */
|
||||
SNCSeg next; /* Next segment in chain, or NULL */
|
||||
Sig sig;
|
||||
Sig sig; /* design.mps.sig.field.end.outer */
|
||||
} SNCSegStruct;
|
||||
|
||||
#define SegSNCSeg(seg) ((SNCSeg)(seg))
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@
|
|||
#include <ucontext.h> /* ucontext_t */
|
||||
|
||||
typedef struct MutatorContextStruct {
|
||||
Sig sig; /* <design/sig> */
|
||||
Sig sig; /* design.mps.sig.field */
|
||||
MutatorContextVar var; /* Discriminator. */
|
||||
siginfo_t *info; /* Signal info, if stopped by protection
|
||||
* fault; NULL if stopped by thread manager. */
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
#include "mpswin.h"
|
||||
|
||||
typedef struct MutatorContextStruct {
|
||||
Sig sig; /* <design/sig> */
|
||||
Sig sig; /* design.mps.sig.field */
|
||||
MutatorContextVar var; /* Union discriminator */
|
||||
union {
|
||||
LPEXCEPTION_POINTERS ep; /* Windows Exception Pointers */
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@
|
|||
#endif
|
||||
|
||||
typedef struct MutatorContextStruct {
|
||||
Sig sig; /* <design/sig> */
|
||||
Sig sig; /* design.mps.sig.field */
|
||||
MutatorContextVar var; /* Discriminator. */
|
||||
Addr address; /* Fault address, if stopped by protection
|
||||
* fault; NULL if stopped by thread manager. */
|
||||
|
|
|
|||
|
|
@ -186,7 +186,7 @@ typedef void (*FinishMethod)(Inst inst);
|
|||
|
||||
typedef struct InstClassStruct {
|
||||
InstStruct instStruct; /* classes are instances of kinds */
|
||||
Sig sig; /* <design/sig> */
|
||||
Sig sig; /* design.mps.sig.field [FIXME: Why isn't this at the end? RB 2023-03-09] */
|
||||
ClassName name; /* human readable name such as "Land" */
|
||||
InstClass superclass; /* pointer to direct superclass */
|
||||
ClassLevel level; /* distance from root of class hierarchy */
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ typedef struct PThreadextStruct *PThreadext;
|
|||
*/
|
||||
|
||||
typedef struct PThreadextStruct {
|
||||
Sig sig; /* <design/sig> */
|
||||
Sig sig; /* design.mps.sig.field */
|
||||
pthread_t id; /* Thread ID */
|
||||
MutatorContext context; /* context if suspended */
|
||||
RingStruct threadRing; /* ring of suspended threads */
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ typedef union AreaScanUnion {
|
|||
} AreaScanUnion;
|
||||
|
||||
typedef struct RootStruct {
|
||||
Sig sig;
|
||||
Sig sig; /* design.mps.sig.field */
|
||||
Serial serial; /* from arena->rootSerial */
|
||||
Arena arena; /* owning arena */
|
||||
RingStruct arenaRing; /* attachment to arena */
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ typedef struct SparseArrayStruct *SparseArray;
|
|||
#define SparseArraySig ((Sig)0x5195BA66) /* SIGnature SParse ARRay */
|
||||
|
||||
typedef struct SparseArrayStruct {
|
||||
Sig sig;
|
||||
Sig sig; /* design.mps.sig.field */
|
||||
void *base; /* base of array, page aligned */
|
||||
Size elementSize; /* size of array elements, <= page size */
|
||||
Index length; /* number of elements in the array */
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@
|
|||
typedef struct SACStruct *SAC;
|
||||
|
||||
typedef struct SACStruct {
|
||||
Sig sig;
|
||||
Sig sig; /* design.mps.sig.field */
|
||||
Pool pool;
|
||||
Count classesCount; /* number of classes */
|
||||
Index middleIndex; /* index of the middle */
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ typedef struct AMSTStruct {
|
|||
Count badMerges; /* count of unsuccessful segment merges */
|
||||
Count bsplits; /* count of buffered segment splits */
|
||||
Count bmerges; /* count of buffered segment merges */
|
||||
Sig sig; /* <design/pool#.outer-structure.sig> */
|
||||
Sig sig; /* design.mps.sig.field.end.outer */
|
||||
} AMSTStruct;
|
||||
|
||||
typedef struct AMSTStruct *AMST;
|
||||
|
|
@ -89,7 +89,7 @@ typedef struct AMSTSegStruct {
|
|||
AMSSegStruct amsSegStruct; /* superclass fields must come first */
|
||||
AMSTSeg next; /* mergeable next segment, or NULL */
|
||||
AMSTSeg prev; /* mergeable prev segment, or NULL */
|
||||
Sig sig; /* <design/pool#.outer-structure.sig> */
|
||||
Sig sig; /* design.mps.sig.field.end.outer */
|
||||
} AMSTSegStruct;
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ extern void SplayTrivUpdate(SplayTree splay, Tree node);
|
|||
#define SplayTreeSig ((Sig)0x5195B1A1) /* SIGnature SPLAY */
|
||||
|
||||
typedef struct SplayTreeStruct {
|
||||
Sig sig;
|
||||
Sig sig; /* design.mps.sig.field */
|
||||
TreeCompareFunction compare;
|
||||
TreeKeyFunction nodeKey;
|
||||
SplayUpdateNodeFunction updateNode;
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ typedef void (*TableFreeFunction)(void *closure, void *p, size_t size);
|
|||
#define TableSig ((Sig)0x5192AB13) /* SIGnature TABLE */
|
||||
|
||||
typedef struct TableStruct {
|
||||
Sig sig; /* <design/sig> */
|
||||
Sig sig; /* design.mps.sig.field */
|
||||
Count length; /* Number of slots in the array */
|
||||
Count count; /* Active entries in the table */
|
||||
TableEntry array; /* Array of table slots */
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ SRCID(than, "$Id$");
|
|||
|
||||
|
||||
typedef struct mps_thr_s { /* ANSI fake thread structure */
|
||||
Sig sig; /* <design/sig> */
|
||||
Sig sig; /* design.mps.sig.field */
|
||||
Serial serial; /* from arena->threadSerial */
|
||||
Arena arena; /* owning arena */
|
||||
RingStruct arenaRing; /* attaches to arena */
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ SRCID(thix, "$Id$");
|
|||
/* ThreadStruct -- thread descriptor */
|
||||
|
||||
typedef struct mps_thr_s { /* PThreads thread structure */
|
||||
Sig sig; /* <design/sig> */
|
||||
Sig sig; /* design.mps.sig.field */
|
||||
Serial serial; /* from arena->threadSerial */
|
||||
Arena arena; /* owning arena */
|
||||
RingStruct arenaRing; /* threads attached to arena */
|
||||
|
|
|
|||
|
|
@ -65,7 +65,7 @@ SRCID(thw3, "$Id$");
|
|||
|
||||
|
||||
typedef struct mps_thr_s { /* Win32 thread structure */
|
||||
Sig sig; /* <design/sig> */
|
||||
Sig sig; /* design.mps.sig.field */
|
||||
Serial serial; /* from arena->threadSerial */
|
||||
Arena arena; /* owning arena */
|
||||
RingStruct arenaRing; /* threads attached to arena */
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ SRCID(thxc, "$Id$");
|
|||
|
||||
|
||||
typedef struct mps_thr_s { /* macOS thread structure */
|
||||
Sig sig; /* <design/sig> */
|
||||
Sig sig; /* design.mps.sig.field */
|
||||
Serial serial; /* from arena->threadSerial */
|
||||
Arena arena; /* owning arena */
|
||||
RingStruct arenaRing; /* attaches to arena */
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@
|
|||
#define TRACE_START_MESSAGE_WHYBUF_LEN 128
|
||||
|
||||
typedef struct TraceStartMessageStruct {
|
||||
Sig sig;
|
||||
Sig sig; /* design.mps.sig.field */
|
||||
char why[TRACE_START_MESSAGE_WHYBUF_LEN]; /* .whybuf */
|
||||
MessageStruct messageStruct;
|
||||
} TraceStartMessageStruct;
|
||||
|
|
@ -253,7 +253,7 @@ void TracePostStartMessage(Trace trace)
|
|||
#define TraceMessageSig ((Sig)0x51926359) /* SIGnature TRace MeSsaGe */
|
||||
|
||||
typedef struct TraceMessageStruct {
|
||||
Sig sig;
|
||||
Sig sig; /* design.mps.sig.field */
|
||||
Size liveSize;
|
||||
Size condemnedSize;
|
||||
Size notCondemnedSize;
|
||||
|
|
|
|||
|
|
@ -83,7 +83,7 @@ typedef union PageUnion { /* page structure */
|
|||
#define ChunkSig ((Sig)0x519C804C) /* SIGnature CHUNK */
|
||||
|
||||
typedef struct ChunkStruct {
|
||||
Sig sig; /* <design/sig> */
|
||||
Sig sig; /* design.mps.sig.field */
|
||||
Serial serial; /* serial within the arena */
|
||||
Arena arena; /* parent arena */
|
||||
RingStruct arenaRing; /* node in ring of all chunks in arena */
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@
|
|||
#define VMSig ((Sig)0x519B3999) /* SIGnature VM */
|
||||
|
||||
typedef struct VMStruct {
|
||||
Sig sig; /* <design/sig> */
|
||||
Sig sig; /* design.mps.sig.field */
|
||||
Size pageSize; /* operating system page size */
|
||||
void *block; /* unaligned base of mmap'd memory */
|
||||
Addr base, limit; /* aligned boundaries of reserved space */
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ SRCID(walk, "$Id$");
|
|||
typedef struct FormattedObjectsStepClosureStruct *FormattedObjectsStepClosure;
|
||||
|
||||
typedef struct FormattedObjectsStepClosureStruct {
|
||||
Sig sig;
|
||||
Sig sig; /* design.mps.sig.field */
|
||||
mps_formatted_objects_stepper_t f;
|
||||
void *p;
|
||||
size_t s;
|
||||
|
|
@ -150,7 +150,7 @@ typedef struct rootsStepClosureStruct {
|
|||
void *p; /* client closure data */
|
||||
size_t s; /* client closure data */
|
||||
Root root; /* current root, or NULL */
|
||||
Sig sig; /* <code/misc.h#sig> */
|
||||
Sig sig; /* design.mps.sig.field.end.outer */
|
||||
} rootsStepClosureStruct;
|
||||
|
||||
#define rootsStepClosure2ScanState(rsc) (&(rsc)->ssStruct)
|
||||
|
|
|
|||
2764
mps/configure
vendored
2764
mps/configure
vendored
File diff suppressed because it is too large
Load diff
|
|
@ -45,10 +45,9 @@ _`.struct.outer`: The *outer structure* of a pool belonging to the ABC
|
|||
pool class is a C object of type ``ABCPoolStruct``, which is a typedef
|
||||
for ``struct PoolABCStruct``.
|
||||
|
||||
_`.stuct.outer.sig`: It is good practice to put the signature for the
|
||||
outer structure at the end (of the structure). This is because there's
|
||||
already one at the beginning (in the generic structure), so putting it
|
||||
at the end gives some extra fencepost checking.
|
||||
_`.stuct.outer.sig`: See `design.mps.sig.field.end.outer`_.
|
||||
|
||||
.. _design.mps.sig.field.end.outer: sig.txt#field-end-outer
|
||||
|
||||
_`.struct.generic`: The *generic structure* of a pool is a C object of
|
||||
type ``PoolStruct`` (found embedded in the outer structure), which is
|
||||
|
|
|
|||
918
mps/tool/autoconf/build-aux/config.guess
vendored
Normal file → Executable file
918
mps/tool/autoconf/build-aux/config.guess
vendored
Normal file → Executable file
File diff suppressed because it is too large
Load diff
409
mps/tool/autoconf/build-aux/config.sub
vendored
Normal file → Executable file
409
mps/tool/autoconf/build-aux/config.sub
vendored
Normal file → Executable file
|
|
@ -1,36 +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, 2012 Free Software Foundation, Inc.
|
||||
# Copyright 1992-2018 Free Software Foundation, Inc.
|
||||
|
||||
timestamp='2012-04-18'
|
||||
timestamp='2018-02-22'
|
||||
|
||||
# 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, see <http://www.gnu.org/licenses/>.
|
||||
# along with this program; if not, see <https://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 to <config-patches@gnu.org>.
|
||||
#
|
||||
# Configuration subroutine to validate and canonicalize a configuration type.
|
||||
# Supply the specified configuration type as an argument.
|
||||
|
|
@ -38,7 +33,7 @@ timestamp='2012-04-18'
|
|||
# Otherwise, we print the canonical config type on stdout and succeed.
|
||||
|
||||
# You can get the latest version of this script from:
|
||||
# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
|
||||
# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
|
||||
|
||||
# This file is supposed to be the same for all GNU packages
|
||||
# and recognize all the CPU types, system types and aliases
|
||||
|
|
@ -58,12 +53,11 @@ timestamp='2012-04-18'
|
|||
me=`echo "$0" | sed -e 's,.*/,,'`
|
||||
|
||||
usage="\
|
||||
Usage: $0 [OPTION] CPU-MFR-OPSYS
|
||||
$0 [OPTION] ALIAS
|
||||
Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
|
||||
|
||||
Canonicalize a configuration name.
|
||||
|
||||
Operation modes:
|
||||
Options:
|
||||
-h, --help print this help, then exit
|
||||
-t, --time-stamp print date of last modification, then exit
|
||||
-v, --version print version number, then exit
|
||||
|
|
@ -73,9 +67,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, 2012
|
||||
Free Software Foundation, Inc.
|
||||
Copyright 1992-2018 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."
|
||||
|
|
@ -102,7 +94,7 @@ while test $# -gt 0 ; do
|
|||
|
||||
*local*)
|
||||
# First pass through any local machine types.
|
||||
echo $1
|
||||
echo "$1"
|
||||
exit ;;
|
||||
|
||||
* )
|
||||
|
|
@ -120,24 +112,24 @@ esac
|
|||
|
||||
# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
|
||||
# Here we must recognize all the valid KERNEL-OS combinations.
|
||||
maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
|
||||
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* | \
|
||||
knetbsd*-gnu* | netbsd*-gnu* | \
|
||||
kopensolaris*-gnu* | \
|
||||
linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
|
||||
knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \
|
||||
kopensolaris*-gnu* | cloudabi*-eabi* | \
|
||||
storm-chaos* | os2-emx* | rtmk-nova*)
|
||||
os=-$maybe_os
|
||||
basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
|
||||
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/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
|
||||
;;
|
||||
*)
|
||||
basic_machine=`echo $1 | sed 's/-[^-]*$//'`
|
||||
if [ $basic_machine != $1 ]
|
||||
then os=`echo $1 | sed 's/.*-/-/'`
|
||||
basic_machine=`echo "$1" | sed 's/-[^-]*$//'`
|
||||
if [ "$basic_machine" != "$1" ]
|
||||
then os=`echo "$1" | sed 's/.*-/-/'`
|
||||
else os=; fi
|
||||
;;
|
||||
esac
|
||||
|
|
@ -156,7 +148,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
|
||||
;;
|
||||
|
|
@ -186,44 +178,44 @@ case $os in
|
|||
;;
|
||||
-sco6)
|
||||
os=-sco5v6
|
||||
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
|
||||
basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
|
||||
;;
|
||||
-sco5)
|
||||
os=-sco3.2v5
|
||||
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
|
||||
basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
|
||||
;;
|
||||
-sco4)
|
||||
os=-sco3.2v4
|
||||
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
|
||||
basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
|
||||
;;
|
||||
-sco3.2.[4-9]*)
|
||||
os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
|
||||
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
|
||||
basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
|
||||
;;
|
||||
-sco3.2v[4-9]*)
|
||||
# Don't forget version if it is 3.2v4 or newer.
|
||||
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
|
||||
basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
|
||||
;;
|
||||
-sco5v6*)
|
||||
# Don't forget version if it is 3.2v4 or newer.
|
||||
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
|
||||
basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
|
||||
;;
|
||||
-sco*)
|
||||
os=-sco3.2v2
|
||||
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
|
||||
basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
|
||||
;;
|
||||
-udk*)
|
||||
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
|
||||
basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
|
||||
;;
|
||||
-isc)
|
||||
os=-isc2.2
|
||||
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
|
||||
basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
|
||||
;;
|
||||
-clix*)
|
||||
basic_machine=clipper-intergraph
|
||||
;;
|
||||
-isc*)
|
||||
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
|
||||
basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
|
||||
;;
|
||||
-lynx*178)
|
||||
os=-lynxos178
|
||||
|
|
@ -235,10 +227,7 @@ case $os in
|
|||
os=-lynxos
|
||||
;;
|
||||
-ptx*)
|
||||
basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
|
||||
;;
|
||||
-windowsnt*)
|
||||
os=`echo $os | sed -e 's/windowsnt/winnt/'`
|
||||
basic_machine=`echo "$1" | sed -e 's/86-.*/86-sequent/'`
|
||||
;;
|
||||
-psos*)
|
||||
os=-psos
|
||||
|
|
@ -259,21 +248,25 @@ case $basic_machine in
|
|||
| 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 \
|
||||
| ba \
|
||||
| be32 | be64 \
|
||||
| bfin \
|
||||
| c4x | clipper \
|
||||
| c4x | c8051 | clipper \
|
||||
| d10v | d30v | dlx | dsp16xx \
|
||||
| epiphany \
|
||||
| fido | fr30 | frv \
|
||||
| e2k | epiphany \
|
||||
| fido | fr30 | frv | ft32 \
|
||||
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
|
||||
| hexagon \
|
||||
| i370 | i860 | i960 | ia64 \
|
||||
| i370 | i860 | i960 | ia16 | 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 \
|
||||
|
|
@ -287,26 +280,30 @@ case $basic_machine in
|
|||
| mips64vr5900 | mips64vr5900el \
|
||||
| mipsisa32 | mipsisa32el \
|
||||
| mipsisa32r2 | mipsisa32r2el \
|
||||
| mipsisa32r6 | mipsisa32r6el \
|
||||
| mipsisa64 | mipsisa64el \
|
||||
| mipsisa64r2 | mipsisa64r2el \
|
||||
| mipsisa64r6 | mipsisa64r6el \
|
||||
| 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 \
|
||||
| pdp10 | pdp11 | pj | pjl \
|
||||
| open8 | or1k | or1knd | or32 \
|
||||
| pdp10 | pj | pjl \
|
||||
| powerpc | powerpc64 | powerpc64le | powerpcle \
|
||||
| pru \
|
||||
| pyramid \
|
||||
| riscv32 | riscv64 \
|
||||
| rl78 | rx \
|
||||
| score \
|
||||
| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
|
||||
| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
|
||||
| sh64 | sh64le \
|
||||
| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
|
||||
| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
|
||||
|
|
@ -314,7 +311,8 @@ case $basic_machine in
|
|||
| tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
|
||||
| ubicom32 \
|
||||
| v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
|
||||
| we32k \
|
||||
| visium \
|
||||
| wasm32 \
|
||||
| x86 | xc16x | xstormy16 | xtensa \
|
||||
| z8k | z80)
|
||||
basic_machine=$basic_machine-unknown
|
||||
|
|
@ -328,11 +326,14 @@ case $basic_machine in
|
|||
c6x)
|
||||
basic_machine=tic6x-unknown
|
||||
;;
|
||||
m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip)
|
||||
leon|leon[3-9])
|
||||
basic_machine=sparc-$basic_machine
|
||||
;;
|
||||
m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
|
||||
basic_machine=$basic_machine-unknown
|
||||
os=-none
|
||||
;;
|
||||
m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
|
||||
m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65)
|
||||
;;
|
||||
ms1)
|
||||
basic_machine=mt-unknown
|
||||
|
|
@ -361,7 +362,7 @@ case $basic_machine in
|
|||
;;
|
||||
# Object if more than one company name word.
|
||||
*-*-*)
|
||||
echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
|
||||
echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2
|
||||
exit 1
|
||||
;;
|
||||
# Recognize the basic CPU types with company name.
|
||||
|
|
@ -370,26 +371,29 @@ case $basic_machine in
|
|||
| 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-* \
|
||||
| ba-* \
|
||||
| be32-* | be64-* \
|
||||
| bfin-* | bs2000-* \
|
||||
| c[123]* | c30-* | [cjt]90-* | c4x-* \
|
||||
| clipper-* | craynv-* | cydra-* \
|
||||
| c8051-* | clipper-* | craynv-* | cydra-* \
|
||||
| d10v-* | d30v-* | dlx-* \
|
||||
| elxsi-* \
|
||||
| e2k-* | elxsi-* \
|
||||
| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
|
||||
| h8300-* | h8500-* \
|
||||
| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
|
||||
| hexagon-* \
|
||||
| i*86-* | i860-* | i960-* | ia64-* \
|
||||
| i*86-* | i860-* | i960-* | ia16-* | 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-* \
|
||||
|
|
@ -403,28 +407,34 @@ case $basic_machine in
|
|||
| mips64vr5900-* | mips64vr5900el-* \
|
||||
| mipsisa32-* | mipsisa32el-* \
|
||||
| mipsisa32r2-* | mipsisa32r2el-* \
|
||||
| mipsisa32r6-* | mipsisa32r6el-* \
|
||||
| mipsisa64-* | mipsisa64el-* \
|
||||
| mipsisa64r2-* | mipsisa64r2el-* \
|
||||
| mipsisa64r6-* | mipsisa64r6el-* \
|
||||
| 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-* \
|
||||
| pru-* \
|
||||
| pyramid-* \
|
||||
| riscv32-* | riscv64-* \
|
||||
| rl78-* | romp-* | rs6000-* | rx-* \
|
||||
| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
|
||||
| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
|
||||
| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
|
||||
| sparclite-* \
|
||||
| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \
|
||||
| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \
|
||||
| tahoe-* \
|
||||
| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
|
||||
| tile*-* \
|
||||
|
|
@ -432,6 +442,8 @@ case $basic_machine in
|
|||
| ubicom32-* \
|
||||
| v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
|
||||
| vax-* \
|
||||
| visium-* \
|
||||
| wasm32-* \
|
||||
| we32k-* \
|
||||
| x86-* | x86_64-* | xc16x-* | xps100-* \
|
||||
| xstormy16-* | xtensa*-* \
|
||||
|
|
@ -445,7 +457,7 @@ case $basic_machine in
|
|||
# Recognize the various machine names and aliases which stand
|
||||
# for a CPU type and a company and sometimes even an OS.
|
||||
386bsd)
|
||||
basic_machine=i386-unknown
|
||||
basic_machine=i386-pc
|
||||
os=-bsd
|
||||
;;
|
||||
3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
|
||||
|
|
@ -479,7 +491,7 @@ case $basic_machine in
|
|||
basic_machine=x86_64-pc
|
||||
;;
|
||||
amd64-*)
|
||||
basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||
basic_machine=x86_64-`echo "$basic_machine" | sed 's/^[^-]*-//'`
|
||||
;;
|
||||
amdahl)
|
||||
basic_machine=580-amdahl
|
||||
|
|
@ -508,6 +520,9 @@ case $basic_machine in
|
|||
basic_machine=i386-pc
|
||||
os=-aros
|
||||
;;
|
||||
asmjs)
|
||||
basic_machine=asmjs-unknown
|
||||
;;
|
||||
aux)
|
||||
basic_machine=m68k-apple
|
||||
os=-aux
|
||||
|
|
@ -521,7 +536,7 @@ case $basic_machine in
|
|||
os=-linux
|
||||
;;
|
||||
blackfin-*)
|
||||
basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||
basic_machine=bfin-`echo "$basic_machine" | sed 's/^[^-]*-//'`
|
||||
os=-linux
|
||||
;;
|
||||
bluegene*)
|
||||
|
|
@ -529,13 +544,13 @@ case $basic_machine in
|
|||
os=-cnk
|
||||
;;
|
||||
c54x-*)
|
||||
basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||
basic_machine=tic54x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
|
||||
;;
|
||||
c55x-*)
|
||||
basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||
basic_machine=tic55x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
|
||||
;;
|
||||
c6x-*)
|
||||
basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||
basic_machine=tic6x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
|
||||
;;
|
||||
c90)
|
||||
basic_machine=c90-cray
|
||||
|
|
@ -624,10 +639,18 @@ case $basic_machine in
|
|||
basic_machine=rs6000-bull
|
||||
os=-bosx
|
||||
;;
|
||||
dpx2* | dpx2*-bull)
|
||||
dpx2*)
|
||||
basic_machine=m68k-bull
|
||||
os=-sysv3
|
||||
;;
|
||||
e500v[12])
|
||||
basic_machine=powerpc-unknown
|
||||
os=$os"spe"
|
||||
;;
|
||||
e500v[12]-*)
|
||||
basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'`
|
||||
os=$os"spe"
|
||||
;;
|
||||
ebmon29k)
|
||||
basic_machine=a29k-amd
|
||||
os=-ebmon
|
||||
|
|
@ -717,9 +740,6 @@ case $basic_machine in
|
|||
hp9k8[0-9][0-9] | hp8[0-9][0-9])
|
||||
basic_machine=hppa1.0-hp
|
||||
;;
|
||||
hppa-next)
|
||||
os=-nextstep3
|
||||
;;
|
||||
hppaosf)
|
||||
basic_machine=hppa1.1-hp
|
||||
os=-osf
|
||||
|
|
@ -732,26 +752,26 @@ case $basic_machine in
|
|||
basic_machine=i370-ibm
|
||||
;;
|
||||
i*86v32)
|
||||
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
|
||||
basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
|
||||
os=-sysv32
|
||||
;;
|
||||
i*86v4*)
|
||||
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
|
||||
basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
|
||||
os=-sysv4
|
||||
;;
|
||||
i*86v)
|
||||
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
|
||||
basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
|
||||
os=-sysv
|
||||
;;
|
||||
i*86sol2)
|
||||
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
|
||||
basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
|
||||
os=-solaris2
|
||||
;;
|
||||
i386mach)
|
||||
basic_machine=i386-mach
|
||||
os=-mach
|
||||
;;
|
||||
i386-vsta | vsta)
|
||||
vsta)
|
||||
basic_machine=i386-unknown
|
||||
os=-vsta
|
||||
;;
|
||||
|
|
@ -769,17 +789,17 @@ case $basic_machine in
|
|||
basic_machine=m68k-isi
|
||||
os=-sysv
|
||||
;;
|
||||
leon-*|leon[3-9]-*)
|
||||
basic_machine=sparc-`echo "$basic_machine" | sed 's/-.*//'`
|
||||
;;
|
||||
m68knommu)
|
||||
basic_machine=m68k-unknown
|
||||
os=-linux
|
||||
;;
|
||||
m68knommu-*)
|
||||
basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||
basic_machine=m68k-`echo "$basic_machine" | sed 's/^[^-]*-//'`
|
||||
os=-linux
|
||||
;;
|
||||
m88k-omron*)
|
||||
basic_machine=m88k-omron
|
||||
;;
|
||||
magnum | m3230)
|
||||
basic_machine=mips-mips
|
||||
os=-sysv
|
||||
|
|
@ -788,11 +808,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)
|
||||
|
|
@ -807,10 +831,10 @@ case $basic_machine in
|
|||
os=-mint
|
||||
;;
|
||||
mips3*-*)
|
||||
basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
|
||||
basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`
|
||||
;;
|
||||
mips3*)
|
||||
basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
|
||||
basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`-unknown
|
||||
;;
|
||||
monitor)
|
||||
basic_machine=m68k-rom68k
|
||||
|
|
@ -820,15 +844,19 @@ case $basic_machine in
|
|||
basic_machine=powerpc-unknown
|
||||
os=-morphos
|
||||
;;
|
||||
moxiebox)
|
||||
basic_machine=moxie-unknown
|
||||
os=-moxiebox
|
||||
;;
|
||||
msdos)
|
||||
basic_machine=i386-pc
|
||||
os=-msdos
|
||||
;;
|
||||
ms1-*)
|
||||
basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
|
||||
basic_machine=`echo "$basic_machine" | sed -e 's/ms1-/mt-/'`
|
||||
;;
|
||||
msys)
|
||||
basic_machine=i386-pc
|
||||
basic_machine=i686-pc
|
||||
os=-msys
|
||||
;;
|
||||
mvs)
|
||||
|
|
@ -867,7 +895,7 @@ case $basic_machine in
|
|||
basic_machine=v70-nec
|
||||
os=-sysv
|
||||
;;
|
||||
next | m*-next )
|
||||
next | m*-next)
|
||||
basic_machine=m68k-next
|
||||
case $os in
|
||||
-nextstep* )
|
||||
|
|
@ -912,6 +940,12 @@ case $basic_machine in
|
|||
nsr-tandem)
|
||||
basic_machine=nsr-tandem
|
||||
;;
|
||||
nsv-tandem)
|
||||
basic_machine=nsv-tandem
|
||||
;;
|
||||
nsx-tandem)
|
||||
basic_machine=nsx-tandem
|
||||
;;
|
||||
op50n-* | op60c-*)
|
||||
basic_machine=hppa1.1-oki
|
||||
os=-proelf
|
||||
|
|
@ -944,7 +978,7 @@ case $basic_machine in
|
|||
os=-linux
|
||||
;;
|
||||
parisc-*)
|
||||
basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||
basic_machine=hppa-`echo "$basic_machine" | sed 's/^[^-]*-//'`
|
||||
os=-linux
|
||||
;;
|
||||
pbd)
|
||||
|
|
@ -960,7 +994,7 @@ case $basic_machine in
|
|||
basic_machine=i386-pc
|
||||
;;
|
||||
pc98-*)
|
||||
basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||
basic_machine=i386-`echo "$basic_machine" | sed 's/^[^-]*-//'`
|
||||
;;
|
||||
pentium | p5 | k5 | k6 | nexgen | viac3)
|
||||
basic_machine=i586-pc
|
||||
|
|
@ -975,16 +1009,16 @@ case $basic_machine in
|
|||
basic_machine=i786-pc
|
||||
;;
|
||||
pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
|
||||
basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||
basic_machine=i586-`echo "$basic_machine" | sed 's/^[^-]*-//'`
|
||||
;;
|
||||
pentiumpro-* | p6-* | 6x86-* | athlon-*)
|
||||
basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||
basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'`
|
||||
;;
|
||||
pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
|
||||
basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||
basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'`
|
||||
;;
|
||||
pentium4-*)
|
||||
basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||
basic_machine=i786-`echo "$basic_machine" | sed 's/^[^-]*-//'`
|
||||
;;
|
||||
pn)
|
||||
basic_machine=pn-gould
|
||||
|
|
@ -994,23 +1028,23 @@ case $basic_machine in
|
|||
ppc | ppcbe) basic_machine=powerpc-unknown
|
||||
;;
|
||||
ppc-* | ppcbe-*)
|
||||
basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||
basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'`
|
||||
;;
|
||||
ppcle | powerpclittle | ppc-le | powerpc-little)
|
||||
ppcle | powerpclittle)
|
||||
basic_machine=powerpcle-unknown
|
||||
;;
|
||||
ppcle-* | powerpclittle-*)
|
||||
basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||
basic_machine=powerpcle-`echo "$basic_machine" | sed 's/^[^-]*-//'`
|
||||
;;
|
||||
ppc64) basic_machine=powerpc64-unknown
|
||||
;;
|
||||
ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||
ppc64-*) basic_machine=powerpc64-`echo "$basic_machine" | sed 's/^[^-]*-//'`
|
||||
;;
|
||||
ppc64le | powerpc64little | ppc64-le | powerpc64-little)
|
||||
ppc64le | powerpc64little)
|
||||
basic_machine=powerpc64le-unknown
|
||||
;;
|
||||
ppc64le-* | powerpc64little-*)
|
||||
basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||
basic_machine=powerpc64le-`echo "$basic_machine" | sed 's/^[^-]*-//'`
|
||||
;;
|
||||
ps2)
|
||||
basic_machine=i386-ibm
|
||||
|
|
@ -1019,7 +1053,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
|
||||
;;
|
||||
|
|
@ -1060,17 +1098,10 @@ case $basic_machine in
|
|||
sequent)
|
||||
basic_machine=i386-sequent
|
||||
;;
|
||||
sh)
|
||||
basic_machine=sh-hitachi
|
||||
os=-hms
|
||||
;;
|
||||
sh5el)
|
||||
basic_machine=sh5le-unknown
|
||||
;;
|
||||
sh64)
|
||||
basic_machine=sh64-unknown
|
||||
;;
|
||||
sparclite-wrs | simso-wrs)
|
||||
simso-wrs)
|
||||
basic_machine=sparclite-wrs
|
||||
os=-vxworks
|
||||
;;
|
||||
|
|
@ -1089,7 +1120,7 @@ case $basic_machine in
|
|||
os=-sysv4
|
||||
;;
|
||||
strongarm-* | thumb-*)
|
||||
basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||
basic_machine=arm-`echo "$basic_machine" | sed 's/^[^-]*-//'`
|
||||
;;
|
||||
sun2)
|
||||
basic_machine=m68000-sun
|
||||
|
|
@ -1211,6 +1242,9 @@ case $basic_machine in
|
|||
basic_machine=hppa1.1-winbond
|
||||
os=-proelf
|
||||
;;
|
||||
x64)
|
||||
basic_machine=x86_64-pc
|
||||
;;
|
||||
xbox)
|
||||
basic_machine=i686-pc
|
||||
os=-mingw32
|
||||
|
|
@ -1219,20 +1253,12 @@ case $basic_machine in
|
|||
basic_machine=xps100-honeywell
|
||||
;;
|
||||
xscale-* | xscalee[bl]-*)
|
||||
basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
|
||||
basic_machine=`echo "$basic_machine" | sed 's/^xscale/arm/'`
|
||||
;;
|
||||
ymp)
|
||||
basic_machine=ymp-cray
|
||||
os=-unicos
|
||||
;;
|
||||
z8k-*-coff)
|
||||
basic_machine=z8k-unknown
|
||||
os=-sim
|
||||
;;
|
||||
z80-*-coff)
|
||||
basic_machine=z80-unknown
|
||||
os=-sim
|
||||
;;
|
||||
none)
|
||||
basic_machine=none-none
|
||||
os=-none
|
||||
|
|
@ -1261,10 +1287,6 @@ case $basic_machine in
|
|||
vax)
|
||||
basic_machine=vax-dec
|
||||
;;
|
||||
pdp10)
|
||||
# there are many clones, so DEC is not a safe bet
|
||||
basic_machine=pdp10-unknown
|
||||
;;
|
||||
pdp11)
|
||||
basic_machine=pdp11-dec
|
||||
;;
|
||||
|
|
@ -1274,9 +1296,6 @@ case $basic_machine in
|
|||
sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
|
||||
basic_machine=sh-unknown
|
||||
;;
|
||||
sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
|
||||
basic_machine=sparc-sun
|
||||
;;
|
||||
cydra)
|
||||
basic_machine=cydra-cydrome
|
||||
;;
|
||||
|
|
@ -1296,7 +1315,7 @@ case $basic_machine in
|
|||
# Make sure to match an already-canonicalized machine name.
|
||||
;;
|
||||
*)
|
||||
echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
|
||||
echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
|
@ -1304,10 +1323,10 @@ esac
|
|||
# Here we canonicalize certain aliases for manufacturers.
|
||||
case $basic_machine in
|
||||
*-digital*)
|
||||
basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
|
||||
basic_machine=`echo "$basic_machine" | sed 's/digital.*/dec/'`
|
||||
;;
|
||||
*-commodore*)
|
||||
basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
|
||||
basic_machine=`echo "$basic_machine" | sed 's/commodore.*/cbm/'`
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
|
|
@ -1318,8 +1337,8 @@ esac
|
|||
if [ x"$os" != x"" ]
|
||||
then
|
||||
case $os in
|
||||
# First match some system type aliases
|
||||
# that might get confused with valid system types.
|
||||
# First match some system type aliases that might get confused
|
||||
# with valid system types.
|
||||
# -solaris* is a basic system type, with this one exception.
|
||||
-auroraux)
|
||||
os=-auroraux
|
||||
|
|
@ -1330,45 +1349,48 @@ case $os in
|
|||
-solaris)
|
||||
os=-solaris2
|
||||
;;
|
||||
-svr4*)
|
||||
os=-sysv4
|
||||
;;
|
||||
-unixware*)
|
||||
os=-sysv4.2uw
|
||||
;;
|
||||
-gnu/linux*)
|
||||
os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
|
||||
;;
|
||||
# First accept the basic system types.
|
||||
# es1800 is here to avoid being matched by es* (a different OS)
|
||||
-es1800*)
|
||||
os=-ose
|
||||
;;
|
||||
# Now accept the basic system types.
|
||||
# The portable systems comes first.
|
||||
# Each alternative MUST END IN A *, to match a version number.
|
||||
# Each alternative MUST end in a * to match a version number.
|
||||
# -sysv* is not here because it comes later, after sysvr4.
|
||||
-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* \
|
||||
| -aos* | -aros* | -cloudabi* | -sortix* \
|
||||
| -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
|
||||
| -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
|
||||
| -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
|
||||
| -openbsd* | -solidbsd* \
|
||||
| -hiux* | -knetbsd* | -mirbsd* | -netbsd* \
|
||||
| -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \
|
||||
| -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* \
|
||||
| -chorusos* | -chorusrdb* | -cegcc* | -glidix* \
|
||||
| -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
|
||||
| -mingw32* | -linux-gnu* | -linux-android* \
|
||||
| -linux-newlib* | -linux-uclibc* \
|
||||
| -uxpv* | -beos* | -mpeix* | -udk* \
|
||||
| -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
|
||||
| -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
|
||||
| -linux-newlib* | -linux-musl* | -linux-uclibc* \
|
||||
| -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \
|
||||
| -interix* | -uwin* | -mks* | -rhapsody* | -darwin* \
|
||||
| -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
|
||||
| -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
|
||||
| -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
|
||||
| -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
|
||||
| -morphos* | -superux* | -rtmk* | -windiss* \
|
||||
| -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
|
||||
| -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
|
||||
| -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \
|
||||
| -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox* | -bme* \
|
||||
| -midnightbsd*)
|
||||
# Remember, each alternative MUST END IN *, to match a version number.
|
||||
;;
|
||||
-qnx*)
|
||||
|
|
@ -1385,12 +1407,12 @@ case $os in
|
|||
-nto*)
|
||||
os=`echo $os | sed -e 's|nto|nto-qnx|'`
|
||||
;;
|
||||
-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
|
||||
| -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
|
||||
-sim | -xray | -os68k* | -v88r* \
|
||||
| -windows* | -osx | -abug | -netware* | -os9* \
|
||||
| -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
|
||||
;;
|
||||
-mac*)
|
||||
os=`echo $os | sed -e 's|mac|macos|'`
|
||||
os=`echo "$os" | sed -e 's|mac|macos|'`
|
||||
;;
|
||||
-linux-dietlibc)
|
||||
os=-linux-dietlibc
|
||||
|
|
@ -1399,10 +1421,10 @@ case $os in
|
|||
os=`echo $os | sed -e 's|linux|linux-gnu|'`
|
||||
;;
|
||||
-sunos5*)
|
||||
os=`echo $os | sed -e 's|sunos5|solaris2|'`
|
||||
os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
|
||||
;;
|
||||
-sunos6*)
|
||||
os=`echo $os | sed -e 's|sunos6|solaris3|'`
|
||||
os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
|
||||
;;
|
||||
-opened*)
|
||||
os=-openedition
|
||||
|
|
@ -1413,12 +1435,6 @@ case $os in
|
|||
-wince*)
|
||||
os=-wince
|
||||
;;
|
||||
-osfrose*)
|
||||
os=-osfrose
|
||||
;;
|
||||
-osf*)
|
||||
os=-osf
|
||||
;;
|
||||
-utek*)
|
||||
os=-bsd
|
||||
;;
|
||||
|
|
@ -1443,7 +1459,7 @@ case $os in
|
|||
-nova*)
|
||||
os=-rtmk-nova
|
||||
;;
|
||||
-ns2 )
|
||||
-ns2)
|
||||
os=-nextstep2
|
||||
;;
|
||||
-nsk*)
|
||||
|
|
@ -1465,7 +1481,7 @@ case $os in
|
|||
-oss*)
|
||||
os=-sysv3
|
||||
;;
|
||||
-svr4)
|
||||
-svr4*)
|
||||
os=-sysv4
|
||||
;;
|
||||
-svr3)
|
||||
|
|
@ -1480,35 +1496,38 @@ case $os in
|
|||
-ose*)
|
||||
os=-ose
|
||||
;;
|
||||
-es1800*)
|
||||
os=-ose
|
||||
;;
|
||||
-xenix)
|
||||
os=-xenix
|
||||
;;
|
||||
-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
|
||||
os=-mint
|
||||
;;
|
||||
-aros*)
|
||||
os=-aros
|
||||
;;
|
||||
-kaos*)
|
||||
os=-kaos
|
||||
;;
|
||||
-zvmoe)
|
||||
os=-zvmoe
|
||||
;;
|
||||
-dicos*)
|
||||
os=-dicos
|
||||
;;
|
||||
-pikeos*)
|
||||
# Until real need of OS specific support for
|
||||
# particular features comes up, bare metal
|
||||
# configurations are quite functional.
|
||||
case $basic_machine in
|
||||
arm*)
|
||||
os=-eabi
|
||||
;;
|
||||
*)
|
||||
os=-elf
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
-nacl*)
|
||||
;;
|
||||
-ios)
|
||||
;;
|
||||
-none)
|
||||
;;
|
||||
*)
|
||||
# Get rid of the `-' at the beginning of $os.
|
||||
os=`echo $os | sed 's/[^-]*-//'`
|
||||
echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
|
||||
echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
|
@ -1543,6 +1562,9 @@ case $basic_machine in
|
|||
c4x-* | tic4x-*)
|
||||
os=-coff
|
||||
;;
|
||||
c8051-*)
|
||||
os=-elf
|
||||
;;
|
||||
hexagon-*)
|
||||
os=-elf
|
||||
;;
|
||||
|
|
@ -1595,12 +1617,12 @@ case $basic_machine in
|
|||
sparc-* | *-sun)
|
||||
os=-sunos4.1.1
|
||||
;;
|
||||
pru-*)
|
||||
os=-elf
|
||||
;;
|
||||
*-be)
|
||||
os=-beos
|
||||
;;
|
||||
*-haiku)
|
||||
os=-haiku
|
||||
;;
|
||||
*-ibm)
|
||||
os=-aix
|
||||
;;
|
||||
|
|
@ -1640,7 +1662,7 @@ case $basic_machine in
|
|||
m88k-omron*)
|
||||
os=-luna
|
||||
;;
|
||||
*-next )
|
||||
*-next)
|
||||
os=-nextstep
|
||||
;;
|
||||
*-sequent)
|
||||
|
|
@ -1655,9 +1677,6 @@ case $basic_machine in
|
|||
i370-*)
|
||||
os=-mvs
|
||||
;;
|
||||
*-next)
|
||||
os=-nextstep3
|
||||
;;
|
||||
*-gould)
|
||||
os=-sysv
|
||||
;;
|
||||
|
|
@ -1767,15 +1786,15 @@ case $basic_machine in
|
|||
vendor=stratus
|
||||
;;
|
||||
esac
|
||||
basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
|
||||
basic_machine=`echo "$basic_machine" | sed "s/unknown/$vendor/"`
|
||||
;;
|
||||
esac
|
||||
|
||||
echo $basic_machine$os
|
||||
echo "$basic_machine$os"
|
||||
exit
|
||||
|
||||
# Local variables:
|
||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||
# eval: (add-hook 'write-file-functions 'time-stamp)
|
||||
# time-stamp-start: "timestamp='"
|
||||
# time-stamp-format: "%:y-%02m-%02d"
|
||||
# time-stamp-end: "'"
|
||||
|
|
|
|||
414
mps/tool/autoconf/build-aux/install-sh
Normal file → Executable file
414
mps/tool/autoconf/build-aux/install-sh
Normal file → Executable file
|
|
@ -1,7 +1,7 @@
|
|||
#!/bin/sh
|
||||
# install - install a program, script, or datafile
|
||||
|
||||
scriptversion=2011-11-20.07; # UTC
|
||||
scriptversion=2020-11-14.01; # UTC
|
||||
|
||||
# This originates from X11R5 (mit/util/scripts/install.sh), which was
|
||||
# later released in X11R6 (xc/config/util/install.sh) with the
|
||||
|
|
@ -41,19 +41,15 @@ scriptversion=2011-11-20.07; # UTC
|
|||
# This script is compatible with the BSD install script, but was written
|
||||
# from scratch.
|
||||
|
||||
tab=' '
|
||||
nl='
|
||||
'
|
||||
IFS=" "" $nl"
|
||||
IFS=" $tab$nl"
|
||||
|
||||
# set DOITPROG to echo to test this script
|
||||
# Set DOITPROG to "echo" to test this script.
|
||||
|
||||
# Don't use :- since 4.3BSD and earlier shells don't like it.
|
||||
doit=${DOITPROG-}
|
||||
if test -z "$doit"; then
|
||||
doit_exec=exec
|
||||
else
|
||||
doit_exec=$doit
|
||||
fi
|
||||
doit_exec=${doit:-exec}
|
||||
|
||||
# Put in absolute file names if you don't have them in your path;
|
||||
# or use environment vars.
|
||||
|
|
@ -68,22 +64,16 @@ mvprog=${MVPROG-mv}
|
|||
rmprog=${RMPROG-rm}
|
||||
stripprog=${STRIPPROG-strip}
|
||||
|
||||
posix_glob='?'
|
||||
initialize_posix_glob='
|
||||
test "$posix_glob" != "?" || {
|
||||
if (set -f) 2>/dev/null; then
|
||||
posix_glob=
|
||||
else
|
||||
posix_glob=:
|
||||
fi
|
||||
}
|
||||
'
|
||||
|
||||
posix_mkdir=
|
||||
|
||||
# Desired mode of installed file.
|
||||
mode=0755
|
||||
|
||||
# Create dirs (including intermediate dirs) using mode 755.
|
||||
# This is like GNU 'install' as of coreutils 8.32 (2020).
|
||||
mkdir_umask=22
|
||||
|
||||
backupsuffix=
|
||||
chgrpcmd=
|
||||
chmodcmd=$chmodprog
|
||||
chowncmd=
|
||||
|
|
@ -97,7 +87,7 @@ dir_arg=
|
|||
dst_arg=
|
||||
|
||||
copy_on_change=false
|
||||
no_target_directory=
|
||||
is_target_a_directory=possibly
|
||||
|
||||
usage="\
|
||||
Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
|
||||
|
|
@ -114,18 +104,28 @@ Options:
|
|||
--version display version info and exit.
|
||||
|
||||
-c (ignored)
|
||||
-C install only if different (preserve the last data modification time)
|
||||
-C install only if different (preserve data modification time)
|
||||
-d create directories instead of installing files.
|
||||
-g GROUP $chgrpprog installed files to GROUP.
|
||||
-m MODE $chmodprog installed files to MODE.
|
||||
-o USER $chownprog installed files to USER.
|
||||
-p pass -p to $cpprog.
|
||||
-s $stripprog installed files.
|
||||
-S SUFFIX attempt to back up existing files, with suffix SUFFIX.
|
||||
-t DIRECTORY install into DIRECTORY.
|
||||
-T report an error if DSTFILE is a directory.
|
||||
|
||||
Environment variables override the default commands:
|
||||
CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
|
||||
RMPROG STRIPPROG
|
||||
|
||||
By default, rm is invoked with -f; when overridden with RMPROG,
|
||||
it's up to you to specify -f if you want it.
|
||||
|
||||
If -S is not specified, no backups are attempted.
|
||||
|
||||
Email bug reports to bug-automake@gnu.org.
|
||||
Automake home page: https://www.gnu.org/software/automake/
|
||||
"
|
||||
|
||||
while test $# -ne 0; do
|
||||
|
|
@ -137,46 +137,62 @@ while test $# -ne 0; do
|
|||
-d) dir_arg=true;;
|
||||
|
||||
-g) chgrpcmd="$chgrpprog $2"
|
||||
shift;;
|
||||
shift;;
|
||||
|
||||
--help) echo "$usage"; exit $?;;
|
||||
|
||||
-m) mode=$2
|
||||
case $mode in
|
||||
*' '* | *' '* | *'
|
||||
'* | *'*'* | *'?'* | *'['*)
|
||||
echo "$0: invalid mode: $mode" >&2
|
||||
exit 1;;
|
||||
esac
|
||||
shift;;
|
||||
case $mode in
|
||||
*' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*)
|
||||
echo "$0: invalid mode: $mode" >&2
|
||||
exit 1;;
|
||||
esac
|
||||
shift;;
|
||||
|
||||
-o) chowncmd="$chownprog $2"
|
||||
shift;;
|
||||
shift;;
|
||||
|
||||
-p) cpprog="$cpprog -p";;
|
||||
|
||||
-s) stripcmd=$stripprog;;
|
||||
|
||||
-t) dst_arg=$2
|
||||
# Protect names problematic for 'test' and other utilities.
|
||||
case $dst_arg in
|
||||
-* | [=\(\)!]) dst_arg=./$dst_arg;;
|
||||
esac
|
||||
shift;;
|
||||
-S) backupsuffix="$2"
|
||||
shift;;
|
||||
|
||||
-T) no_target_directory=true;;
|
||||
-t)
|
||||
is_target_a_directory=always
|
||||
dst_arg=$2
|
||||
# Protect names problematic for 'test' and other utilities.
|
||||
case $dst_arg in
|
||||
-* | [=\(\)!]) dst_arg=./$dst_arg;;
|
||||
esac
|
||||
shift;;
|
||||
|
||||
-T) is_target_a_directory=never;;
|
||||
|
||||
--version) echo "$0 $scriptversion"; exit $?;;
|
||||
|
||||
--) shift
|
||||
break;;
|
||||
--) shift
|
||||
break;;
|
||||
|
||||
-*) echo "$0: invalid option: $1" >&2
|
||||
exit 1;;
|
||||
-*) echo "$0: invalid option: $1" >&2
|
||||
exit 1;;
|
||||
|
||||
*) break;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
# We allow the use of options -d and -T together, by making -d
|
||||
# take the precedence; this is for compatibility with GNU install.
|
||||
|
||||
if test -n "$dir_arg"; then
|
||||
if test -n "$dst_arg"; then
|
||||
echo "$0: target directory not allowed when installing a directory." >&2
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
|
||||
# When -d is used, all remaining arguments are directories to create.
|
||||
# When -t is used, the destination is already specified.
|
||||
|
|
@ -207,6 +223,15 @@ if test $# -eq 0; then
|
|||
exit 0
|
||||
fi
|
||||
|
||||
if test -z "$dir_arg"; then
|
||||
if test $# -gt 1 || test "$is_target_a_directory" = always; then
|
||||
if test ! -d "$dst_arg"; then
|
||||
echo "$0: $dst_arg: Is not a directory." >&2
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if test -z "$dir_arg"; then
|
||||
do_exit='(exit $ret); exit $ret'
|
||||
trap "ret=129; $do_exit" 1
|
||||
|
|
@ -223,16 +248,16 @@ if test -z "$dir_arg"; then
|
|||
|
||||
*[0-7])
|
||||
if test -z "$stripcmd"; then
|
||||
u_plus_rw=
|
||||
u_plus_rw=
|
||||
else
|
||||
u_plus_rw='% 200'
|
||||
u_plus_rw='% 200'
|
||||
fi
|
||||
cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
|
||||
*)
|
||||
if test -z "$stripcmd"; then
|
||||
u_plus_rw=
|
||||
u_plus_rw=
|
||||
else
|
||||
u_plus_rw=,u+rw
|
||||
u_plus_rw=,u+rw
|
||||
fi
|
||||
cp_umask=$mode$u_plus_rw;;
|
||||
esac
|
||||
|
|
@ -250,6 +275,10 @@ do
|
|||
dstdir=$dst
|
||||
test -d "$dstdir"
|
||||
dstdir_status=$?
|
||||
# Don't chown directories that already exist.
|
||||
if test $dstdir_status = 0; then
|
||||
chowncmd=""
|
||||
fi
|
||||
else
|
||||
|
||||
# Waiting for this to be detected by the "$cpprog $src $dsttmp" command
|
||||
|
|
@ -266,178 +295,148 @@ do
|
|||
fi
|
||||
dst=$dst_arg
|
||||
|
||||
# If destination is a directory, append the input filename; won't work
|
||||
# if double slashes aren't ignored.
|
||||
# If destination is a directory, append the input filename.
|
||||
if test -d "$dst"; then
|
||||
if test -n "$no_target_directory"; then
|
||||
echo "$0: $dst_arg: Is a directory" >&2
|
||||
exit 1
|
||||
if test "$is_target_a_directory" = never; then
|
||||
echo "$0: $dst_arg: Is a directory" >&2
|
||||
exit 1
|
||||
fi
|
||||
dstdir=$dst
|
||||
dst=$dstdir/`basename "$src"`
|
||||
dstbase=`basename "$src"`
|
||||
case $dst in
|
||||
*/) dst=$dst$dstbase;;
|
||||
*) dst=$dst/$dstbase;;
|
||||
esac
|
||||
dstdir_status=0
|
||||
else
|
||||
# Prefer dirname, but fall back on a substitute if dirname fails.
|
||||
dstdir=`
|
||||
(dirname "$dst") 2>/dev/null ||
|
||||
expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
|
||||
X"$dst" : 'X\(//\)[^/]' \| \
|
||||
X"$dst" : 'X\(//\)$' \| \
|
||||
X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
|
||||
echo X"$dst" |
|
||||
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
|
||||
s//\1/
|
||||
q
|
||||
}
|
||||
/^X\(\/\/\)[^/].*/{
|
||||
s//\1/
|
||||
q
|
||||
}
|
||||
/^X\(\/\/\)$/{
|
||||
s//\1/
|
||||
q
|
||||
}
|
||||
/^X\(\/\).*/{
|
||||
s//\1/
|
||||
q
|
||||
}
|
||||
s/.*/./; q'
|
||||
`
|
||||
|
||||
dstdir=`dirname "$dst"`
|
||||
test -d "$dstdir"
|
||||
dstdir_status=$?
|
||||
fi
|
||||
fi
|
||||
|
||||
case $dstdir in
|
||||
*/) dstdirslash=$dstdir;;
|
||||
*) dstdirslash=$dstdir/;;
|
||||
esac
|
||||
|
||||
obsolete_mkdir_used=false
|
||||
|
||||
if test $dstdir_status != 0; then
|
||||
case $posix_mkdir in
|
||||
'')
|
||||
# Create intermediate dirs using mode 755 as modified by the umask.
|
||||
# This is like FreeBSD 'install' as of 1997-10-28.
|
||||
umask=`umask`
|
||||
case $stripcmd.$umask in
|
||||
# Optimize common cases.
|
||||
*[2367][2367]) mkdir_umask=$umask;;
|
||||
.*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
|
||||
# With -d, create the new directory with the user-specified mode.
|
||||
# Otherwise, rely on $mkdir_umask.
|
||||
if test -n "$dir_arg"; then
|
||||
mkdir_mode=-m$mode
|
||||
else
|
||||
mkdir_mode=
|
||||
fi
|
||||
|
||||
*[0-7])
|
||||
mkdir_umask=`expr $umask + 22 \
|
||||
- $umask % 100 % 40 + $umask % 20 \
|
||||
- $umask % 10 % 4 + $umask % 2
|
||||
`;;
|
||||
*) mkdir_umask=$umask,go-w;;
|
||||
esac
|
||||
posix_mkdir=false
|
||||
# The $RANDOM variable is not portable (e.g., dash). Use it
|
||||
# here however when possible just to lower collision chance.
|
||||
tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
|
||||
|
||||
# With -d, create the new directory with the user-specified mode.
|
||||
# Otherwise, rely on $mkdir_umask.
|
||||
if test -n "$dir_arg"; then
|
||||
mkdir_mode=-m$mode
|
||||
trap '
|
||||
ret=$?
|
||||
rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null
|
||||
exit $ret
|
||||
' 0
|
||||
|
||||
# Because "mkdir -p" follows existing symlinks and we likely work
|
||||
# directly in world-writeable /tmp, make sure that the '$tmpdir'
|
||||
# directory is successfully created first before we actually test
|
||||
# 'mkdir -p'.
|
||||
if (umask $mkdir_umask &&
|
||||
$mkdirprog $mkdir_mode "$tmpdir" &&
|
||||
exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1
|
||||
then
|
||||
if test -z "$dir_arg" || {
|
||||
# Check for POSIX incompatibilities with -m.
|
||||
# HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
|
||||
# other-writable bit of parent directory when it shouldn't.
|
||||
# FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
|
||||
test_tmpdir="$tmpdir/a"
|
||||
ls_ld_tmpdir=`ls -ld "$test_tmpdir"`
|
||||
case $ls_ld_tmpdir in
|
||||
d????-?r-*) different_mode=700;;
|
||||
d????-?--*) different_mode=755;;
|
||||
*) false;;
|
||||
esac &&
|
||||
$mkdirprog -m$different_mode -p -- "$test_tmpdir" && {
|
||||
ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"`
|
||||
test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
|
||||
}
|
||||
}
|
||||
then posix_mkdir=:
|
||||
fi
|
||||
rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir"
|
||||
else
|
||||
mkdir_mode=
|
||||
# Remove any dirs left behind by ancient mkdir implementations.
|
||||
rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null
|
||||
fi
|
||||
|
||||
posix_mkdir=false
|
||||
case $umask in
|
||||
*[123567][0-7][0-7])
|
||||
# POSIX mkdir -p sets u+wx bits regardless of umask, which
|
||||
# is incompatible with FreeBSD 'install' when (umask & 300) != 0.
|
||||
;;
|
||||
*)
|
||||
tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
|
||||
trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
|
||||
|
||||
if (umask $mkdir_umask &&
|
||||
exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
|
||||
then
|
||||
if test -z "$dir_arg" || {
|
||||
# Check for POSIX incompatibilities with -m.
|
||||
# HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
|
||||
# other-writable bit of parent directory when it shouldn't.
|
||||
# FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
|
||||
ls_ld_tmpdir=`ls -ld "$tmpdir"`
|
||||
case $ls_ld_tmpdir in
|
||||
d????-?r-*) different_mode=700;;
|
||||
d????-?--*) different_mode=755;;
|
||||
*) false;;
|
||||
esac &&
|
||||
$mkdirprog -m$different_mode -p -- "$tmpdir" && {
|
||||
ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
|
||||
test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
|
||||
}
|
||||
}
|
||||
then posix_mkdir=:
|
||||
fi
|
||||
rmdir "$tmpdir/d" "$tmpdir"
|
||||
else
|
||||
# Remove any dirs left behind by ancient mkdir implementations.
|
||||
rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
|
||||
fi
|
||||
trap '' 0;;
|
||||
esac;;
|
||||
trap '' 0;;
|
||||
esac
|
||||
|
||||
if
|
||||
$posix_mkdir && (
|
||||
umask $mkdir_umask &&
|
||||
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
|
||||
umask $mkdir_umask &&
|
||||
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
|
||||
)
|
||||
then :
|
||||
else
|
||||
|
||||
# The umask is ridiculous, or mkdir does not conform to POSIX,
|
||||
# mkdir does not conform to POSIX,
|
||||
# or it failed possibly due to a race condition. Create the
|
||||
# directory the slow way, step by step, checking for races as we go.
|
||||
|
||||
case $dstdir in
|
||||
/*) prefix='/';;
|
||||
[-=\(\)!]*) prefix='./';;
|
||||
*) prefix='';;
|
||||
/*) prefix='/';;
|
||||
[-=\(\)!]*) prefix='./';;
|
||||
*) prefix='';;
|
||||
esac
|
||||
|
||||
eval "$initialize_posix_glob"
|
||||
|
||||
oIFS=$IFS
|
||||
IFS=/
|
||||
$posix_glob set -f
|
||||
set -f
|
||||
set fnord $dstdir
|
||||
shift
|
||||
$posix_glob set +f
|
||||
set +f
|
||||
IFS=$oIFS
|
||||
|
||||
prefixes=
|
||||
|
||||
for d
|
||||
do
|
||||
test X"$d" = X && continue
|
||||
test X"$d" = X && continue
|
||||
|
||||
prefix=$prefix$d
|
||||
if test -d "$prefix"; then
|
||||
prefixes=
|
||||
else
|
||||
if $posix_mkdir; then
|
||||
(umask=$mkdir_umask &&
|
||||
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
|
||||
# Don't fail if two instances are running concurrently.
|
||||
test -d "$prefix" || exit 1
|
||||
else
|
||||
case $prefix in
|
||||
*\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
|
||||
*) qprefix=$prefix;;
|
||||
esac
|
||||
prefixes="$prefixes '$qprefix'"
|
||||
fi
|
||||
fi
|
||||
prefix=$prefix/
|
||||
prefix=$prefix$d
|
||||
if test -d "$prefix"; then
|
||||
prefixes=
|
||||
else
|
||||
if $posix_mkdir; then
|
||||
(umask $mkdir_umask &&
|
||||
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
|
||||
# Don't fail if two instances are running concurrently.
|
||||
test -d "$prefix" || exit 1
|
||||
else
|
||||
case $prefix in
|
||||
*\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
|
||||
*) qprefix=$prefix;;
|
||||
esac
|
||||
prefixes="$prefixes '$qprefix'"
|
||||
fi
|
||||
fi
|
||||
prefix=$prefix/
|
||||
done
|
||||
|
||||
if test -n "$prefixes"; then
|
||||
# Don't fail if two instances are running concurrently.
|
||||
(umask $mkdir_umask &&
|
||||
eval "\$doit_exec \$mkdirprog $prefixes") ||
|
||||
test -d "$dstdir" || exit 1
|
||||
obsolete_mkdir_used=true
|
||||
# Don't fail if two instances are running concurrently.
|
||||
(umask $mkdir_umask &&
|
||||
eval "\$doit_exec \$mkdirprog $prefixes") ||
|
||||
test -d "$dstdir" || exit 1
|
||||
obsolete_mkdir_used=true
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
|
@ -450,14 +449,25 @@ do
|
|||
else
|
||||
|
||||
# Make a couple of temp file names in the proper directory.
|
||||
dsttmp=$dstdir/_inst.$$_
|
||||
rmtmp=$dstdir/_rm.$$_
|
||||
dsttmp=${dstdirslash}_inst.$$_
|
||||
rmtmp=${dstdirslash}_rm.$$_
|
||||
|
||||
# Trap to clean up those temp files at exit.
|
||||
trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
|
||||
|
||||
# Copy the file name to the temp name.
|
||||
(umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
|
||||
(umask $cp_umask &&
|
||||
{ test -z "$stripcmd" || {
|
||||
# Create $dsttmp read-write so that cp doesn't create it read-only,
|
||||
# which would cause strip to fail.
|
||||
if test -z "$doit"; then
|
||||
: >"$dsttmp" # No need to fork-exec 'touch'.
|
||||
else
|
||||
$doit touch "$dsttmp"
|
||||
fi
|
||||
}
|
||||
} &&
|
||||
$doit_exec $cpprog "$src" "$dsttmp") &&
|
||||
|
||||
# and set any options; do chmod last to preserve setuid bits.
|
||||
#
|
||||
|
|
@ -472,20 +482,24 @@ do
|
|||
|
||||
# If -C, don't bother to copy if it wouldn't change the file.
|
||||
if $copy_on_change &&
|
||||
old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
|
||||
new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
|
||||
|
||||
eval "$initialize_posix_glob" &&
|
||||
$posix_glob set -f &&
|
||||
old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
|
||||
new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
|
||||
set -f &&
|
||||
set X $old && old=:$2:$4:$5:$6 &&
|
||||
set X $new && new=:$2:$4:$5:$6 &&
|
||||
$posix_glob set +f &&
|
||||
|
||||
set +f &&
|
||||
test "$old" = "$new" &&
|
||||
$cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
|
||||
then
|
||||
rm -f "$dsttmp"
|
||||
else
|
||||
# If $backupsuffix is set, and the file being installed
|
||||
# already exists, attempt a backup. Don't worry if it fails,
|
||||
# e.g., if mv doesn't support -f.
|
||||
if test -n "$backupsuffix" && test -f "$dst"; then
|
||||
$doit $mvcmd -f "$dst" "$dst$backupsuffix" 2>/dev/null
|
||||
fi
|
||||
|
||||
# Rename the file to the real destination.
|
||||
$doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
|
||||
|
||||
|
|
@ -493,24 +507,24 @@ do
|
|||
# to itself, or perhaps because mv is so ancient that it does not
|
||||
# support -f.
|
||||
{
|
||||
# Now remove or move aside any old file at destination location.
|
||||
# We try this two ways since rm can't unlink itself on some
|
||||
# systems and the destination file might be busy for other
|
||||
# reasons. In this case, the final cleanup might fail but the new
|
||||
# file should still install successfully.
|
||||
{
|
||||
test ! -f "$dst" ||
|
||||
$doit $rmcmd -f "$dst" 2>/dev/null ||
|
||||
{ $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
|
||||
{ $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
|
||||
} ||
|
||||
{ echo "$0: cannot unlink or rename $dst" >&2
|
||||
(exit 1); exit 1
|
||||
}
|
||||
} &&
|
||||
# Now remove or move aside any old file at destination location.
|
||||
# We try this two ways since rm can't unlink itself on some
|
||||
# systems and the destination file might be busy for other
|
||||
# reasons. In this case, the final cleanup might fail but the new
|
||||
# file should still install successfully.
|
||||
{
|
||||
test ! -f "$dst" ||
|
||||
$doit $rmcmd "$dst" 2>/dev/null ||
|
||||
{ $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
|
||||
{ $doit $rmcmd "$rmtmp" 2>/dev/null; :; }
|
||||
} ||
|
||||
{ echo "$0: cannot unlink or rename $dst" >&2
|
||||
(exit 1); exit 1
|
||||
}
|
||||
} &&
|
||||
|
||||
# Now rename the file to the real destination.
|
||||
$doit $mvcmd "$dsttmp" "$dst"
|
||||
# Now rename the file to the real destination.
|
||||
$doit $mvcmd "$dsttmp" "$dst"
|
||||
}
|
||||
fi || exit 1
|
||||
|
||||
|
|
@ -519,9 +533,9 @@ do
|
|||
done
|
||||
|
||||
# Local variables:
|
||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||
# eval: (add-hook 'before-save-hook 'time-stamp)
|
||||
# time-stamp-start: "scriptversion="
|
||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||
# time-stamp-time-zone: "UTC"
|
||||
# time-stamp-time-zone: "UTC0"
|
||||
# time-stamp-end: "; # UTC"
|
||||
# End:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue