diff options
author | cls%seawood.org <devnull@localhost> | 1999-10-09 03:51:28 +0000 |
---|---|---|
committer | cls%seawood.org <devnull@localhost> | 1999-10-09 03:51:28 +0000 |
commit | aae8094946097bc776e9c042449ee4aa23f1d6c2 (patch) | |
tree | 4a38ba3f3868bc363f836fd32257dfd732040cbc | |
parent | 84a0f7cefb78e17ef95a1630b7567226d9988dc8 (diff) | |
download | nspr-hg-AUTOCONF_NSPR_WIN32_XCOMPILE_19990621_BRANCH.tar.gz |
Merged HEAD branch changes to here.AUTOCONF_NSPR_WIN32_XCOMPILE_19990621_BRANCH
-rw-r--r-- | lib/ds/Makefile.in | 8 | ||||
-rw-r--r-- | macbuild/NSPRConfig.h | 1 | ||||
-rw-r--r-- | pr/include/MANIFEST | 2 | ||||
-rw-r--r-- | pr/include/md/Makefile.in | 18 | ||||
-rw-r--r-- | pr/include/obsolete/protypes.h | 2 | ||||
-rw-r--r-- | pr/src/Makefile.in | 12 | ||||
-rw-r--r-- | pr/src/linking/prlink.c | 125 | ||||
-rw-r--r-- | pr/src/md/mac/macdll.c | 300 | ||||
-rw-r--r-- | pr/src/md/mac/macsockotpt.c | 5 | ||||
-rw-r--r-- | pr/src/md/mac/macthr.c | 2 | ||||
-rw-r--r-- | pr/src/md/mac/mactime.c | 4 | ||||
-rw-r--r-- | pr/src/md/unix/Makefile.in | 9 | ||||
-rw-r--r-- | pr/tests/Makefile.in | 2 |
13 files changed, 416 insertions, 74 deletions
diff --git a/lib/ds/Makefile.in b/lib/ds/Makefile.in index 7ad74349..b8751b7c 100644 --- a/lib/ds/Makefile.in +++ b/lib/ds/Makefile.in @@ -172,8 +172,16 @@ export:: $(TARGETS) $(INSTALL) -m 444 $(HEADERS) $(DIST)/include $(INSTALL) -m 444 $(TARGETS) $(DIST)/lib ifdef SHARED_LIBRARY +ifeq ($(OS_ARCH),HP-UX) + $(INSTALL) -m 755 $(SHARED_LIBRARY) $(DIST)/lib + $(INSTALL) -m 755 $(SHARED_LIBRARY) $(DIST)/bin +else $(INSTALL) -m 444 $(SHARED_LIBRARY) $(DIST)/bin endif +ifeq ($(OS_ARCH), OpenVMS) + $(INSTALL) -m 444 $(SHARED_LIBRARY:.$(DLL_SUFFIX)=.vms) $(DIST)/lib +endif +endif ifeq ($(MOZ_BITS),16) $(INSTALL) -m 444 $(HEADERS) $(MOZ_INCL) $(INSTALL) -m 444 $(TARGETS) $(MOZ_DIST)/lib diff --git a/macbuild/NSPRConfig.h b/macbuild/NSPRConfig.h index 59c2f562..07a9783f 100644 --- a/macbuild/NSPRConfig.h +++ b/macbuild/NSPRConfig.h @@ -23,4 +23,5 @@ #define _NO_FAST_STRING_INLINES_ 1 #define FORCE_PR_LOG 1 #define NSPR20 1 +#define NSPR_AS_SHARED_LIB diff --git a/pr/include/MANIFEST b/pr/include/MANIFEST index e9d284a4..fbc544a5 100644 --- a/pr/include/MANIFEST +++ b/pr/include/MANIFEST @@ -38,6 +38,8 @@ prtypes.h prvrsion.h prwin16.h +prlink_mac.h + obsolete/protypes.h obsolete/prsem.h obsolete/probslet.h diff --git a/pr/include/md/Makefile.in b/pr/include/md/Makefile.in index 70d0b1a6..1b8e4b5b 100644 --- a/pr/include/md/Makefile.in +++ b/pr/include/md/Makefile.in @@ -147,6 +147,10 @@ ifeq ($(OS_ARCH),QNX) MDCPUCFG_H = _qnx.cfg endif +ifeq ($(OS_TARGET),NTO) +MDCPUCFG_H = _nto.cfg +endif + ifeq ($(OS_ARCH),BeOS) MDCPUCFG_H = _beos.cfg endif @@ -160,22 +164,20 @@ export:: #$(MDCPUCFG_H) # $(INSTALL) -m 444 $(MDCPUCFG_H) $(MOZ_INCL) # mv -f $(DIST)/include/$(MDCPUCFG_H) $(MOZ_INCL)/prcpucfg.h #else +ifneq ($(OS_ARCH),OpenVMS) @if cmp -s $(srcdir)/$(MDCPUCFG_H) $(DIST)/include/prcpucfg.h; then \ echo $(DIST)/include/prcpucfg.h unchanged; \ else \ echo cp -f $(srcdir)/$(MDCPUCFG_H) $(DIST)/include/prcpucfg.h; \ cp -f $(srcdir)/$(MDCPUCFG_H) $(DIST)/include/prcpucfg.h; \ fi -#endif -ifeq ($(OS_ARCH),OpenVMS) -# mv'ing a link causes the file itself to move, not the link, so fix it. +else +# mv'ing a link causes the file itself to move, not the link. rm -f $(DIST)/include/$(MDCPUCFG_H) - if [ ! -L $(DIST)/include/prcpucfg.h ]; then \ - mv -f $(DIST)/include/prcpucfg.h $(MDCPUCFG_H); \ - ln -fs ../../../nsprpub/pr/include/md/$(MDCPUCFG_H) \ - $(DIST)/include/prcpucfg.h; \ - fi + rm -f $(DIST)/include/prcpucfg.h + ln -fs `pwd`/$(MDCPUCFG_H) $(DIST)/include/prcpucfg.h endif +#endif release:: export @echo "Copying machine-dependent prcpucfg.h" diff --git a/pr/include/obsolete/protypes.h b/pr/include/obsolete/protypes.h index 9e987245..42cc1f1e 100644 --- a/pr/include/obsolete/protypes.h +++ b/pr/include/obsolete/protypes.h @@ -39,7 +39,7 @@ typedef PRIntn intn; #include <support/SupportDefs.h> -#elif VMS +#elif defined(VMS) /* * OpenVMS already defines the integer types below in its standard * header files ints.h and types.h. diff --git a/pr/src/Makefile.in b/pr/src/Makefile.in index f0b6b596..217746bc 100644 --- a/pr/src/Makefile.in +++ b/pr/src/Makefile.in @@ -98,10 +98,6 @@ endif endif endif -ifeq ($(OS_ARCH),OpenVMS) -OS_LIBS = -lvms_jackets -endif - ifeq ($(OS_ARCH),OSF1) ifeq ($(USE_PTHREADS), 1) OS_LIBS = -lpthread -lrt @@ -410,8 +406,16 @@ endif export:: $(TARGETS) $(INSTALL) -m 444 $(TARGETS) $(DIST)/lib ifdef SHARED_LIBRARY +ifeq ($(OS_ARCH),HP-UX) + $(INSTALL) -m 755 $(SHARED_LIBRARY) $(DIST)/lib + $(INSTALL) -m 755 $(SHARED_LIBRARY) $(DIST)/bin +else $(INSTALL) -m 444 $(SHARED_LIBRARY) $(DIST)/bin endif +ifeq ($(OS_ARCH), OpenVMS) + $(INSTALL) -m 444 $(SHARED_LIBRARY:.$(DLL_SUFFIX)=.vms) $(DIST)/lib +endif +endif ifeq ($(MOZ_BITS),16) $(INSTALL) -m 444 $(TARGETS) $(MOZ_DIST)/lib $(INSTALL) -m 444 $(TARGETS) $(MOZ_DIST)/bin diff --git a/pr/src/linking/prlink.c b/pr/src/linking/prlink.c index 0592c05c..bbf50190 100644 --- a/pr/src/linking/prlink.c +++ b/pr/src/linking/prlink.c @@ -29,6 +29,11 @@ #include <TextUtils.h> #include <Types.h> #include <Strings.h> +#include <Aliases.h> + +#include "prlink_mac.h" +#include "macdll.h" +#include "mdmac.h" #endif #ifdef XP_UNIX @@ -721,6 +726,126 @@ PR_FindLibrary(const char *name) return result; } + +#ifdef XP_MAC + +PR_IMPLEMENT(PRLibrary*) +PR_LoadNamedFragment(const FSSpec *fileSpec, const char* fragmentName) +{ + PRLibrary* newLib = NULL; + PRLibrary* result; + FSSpec resolvedSpec = *fileSpec; + CFragConnectionID connectionID = 0; + Boolean isFolder, wasAlias; + OSErr err = noErr; + + if (!_pr_initialized) _PR_ImplicitInitialization(); + + /* See if library is already loaded */ + PR_EnterMonitor(pr_linker_lock); + + result = pr_UnlockedFindLibrary(fragmentName); + if (result != NULL) goto unlock; + + newLib = PR_NEWZAP(PRLibrary); + if (newLib == NULL) goto unlock; + newLib->staticTable = NULL; + + + /* Resolve an alias if this was one */ + err = ResolveAliasFile(&resolvedSpec, true, &isFolder, &wasAlias); + if (err != noErr) + goto unlock; + + if (isFolder) + { + err = fnfErr; + goto unlock; + } + + /* Finally, try to load the library */ + err = NSLoadNamedFragment(&resolvedSpec, fragmentName, &connectionID); + if (err != noErr) + goto unlock; + + newLib->name = strdup(fragmentName); + newLib->dlh = connectionID; + newLib->next = pr_loadmap; + pr_loadmap = newLib; + + result = newLib; /* success */ + PR_LOG(_pr_linker_lm, PR_LOG_MIN, ("Loaded library %s (load lib)", newLib->name)); + +unlock: + if (result == NULL) { + PR_SetError(PR_LOAD_LIBRARY_ERROR, _MD_ERRNO()); + DLLErrorInternal(_MD_ERRNO()); /* sets error text */ + } + PR_ExitMonitor(pr_linker_lock); + return result; +} + + +PR_EXTERN(PRLibrary*) +PR_LoadIndexedFragment(const FSSpec *fileSpec, PRUint32 fragIndex) +{ + PRLibrary* newLib = NULL; + PRLibrary* result; + FSSpec resolvedSpec = *fileSpec; + char* fragmentName = NULL; + CFragConnectionID connectionID = 0; + Boolean isFolder, wasAlias; + OSErr err = noErr; + + if (!_pr_initialized) _PR_ImplicitInitialization(); + + /* See if library is already loaded */ + PR_EnterMonitor(pr_linker_lock); + + result = pr_UnlockedFindLibrary(fragmentName); + if (result != NULL) goto unlock; + + newLib = PR_NEWZAP(PRLibrary); + if (newLib == NULL) goto unlock; + newLib->staticTable = NULL; + + + /* Resolve an alias if this was one */ + err = ResolveAliasFile(&resolvedSpec, true, &isFolder, &wasAlias); + if (err != noErr) + goto unlock; + + if (isFolder) + { + err = fnfErr; + goto unlock; + } + + /* Finally, try to load the library */ + err = NSLoadIndexedFragment(&resolvedSpec, fragIndex, &fragmentName, &connectionID); + if (err != noErr) + goto unlock; + + newLib->name = fragmentName; /* was malloced in NSLoadIndexedFragment */ + newLib->dlh = connectionID; + newLib->next = pr_loadmap; + pr_loadmap = newLib; + + result = newLib; /* success */ + PR_LOG(_pr_linker_lm, PR_LOG_MIN, ("Loaded library %s (load lib)", newLib->name)); + +unlock: + if (result == NULL) { + PR_SetError(PR_LOAD_LIBRARY_ERROR, _MD_ERRNO()); + DLLErrorInternal(_MD_ERRNO()); /* sets error text */ + } + PR_ExitMonitor(pr_linker_lock); + return result; +} + + +#endif + /* ** Unload a shared library which was loaded via PR_LoadLibrary */ diff --git a/pr/src/md/mac/macdll.c b/pr/src/md/mac/macdll.c index dc7b4ee5..80f0a9b2 100644 --- a/pr/src/md/mac/macdll.c +++ b/pr/src/md/mac/macdll.c @@ -16,54 +16,25 @@ * Reserved. */ -#undef OLDROUTINENAMES -#define OLDROUTINENAMES 1 +#include <string.h> #include <Files.h> #include <Errors.h> #include <Folders.h> #include <CodeFragments.h> #include <Aliases.h> +#include <Resources.h> + +#include "IterateDirectory.h" /* MoreFiles */ #include "MacErrorHandling.h" +#include "macdll.h" +#include "mdmac.h" +#include "macio.h" + #include "primpl.h" #include "plstr.h" -typedef struct CfrgItem CfrgItem, *CfrgItemPtr; -struct CfrgItem -{ - OSType fArchType; - UInt32 fUpdateLevel; - UInt32 fCurVersion; - UInt32 fOldDefVersion; - UInt32 fAppStackSize; - UInt16 fAppSubFolder; - UInt8 fUsage; - UInt8 fLocation; - UInt32 fCodeOffset; - UInt32 fCodeLength; - UInt32 fReserved1; - UInt32 fReserved2; - UInt16 fItemSize; // %4 == 0 - Str255 fName; - // Only make the final p-string as long as needed, then align to - // a longword boundary -}; - -typedef struct CfrgHeader CfrgHeader, *CfrgHeaderPtr, **CfrgHeaderHandle; -struct CfrgHeader -{ - UInt32 fReserved1; - UInt32 fReserved2; - UInt32 fVersion; - UInt32 fReserved3; - UInt32 fReserved4; - UInt32 fFiller1; - UInt32 fFiller2; - UInt32 fItemCount; - CfrgItem fCfrgItemArray[1]; -}; - /* turds used to iterate through the directories looking for the desired library. @@ -93,7 +64,7 @@ GetSharedLibraryFilterProc(const CInfoPBRec* const inCpb, Boolean* inWantQuit, v where the loader path is user defined. */ -extern OSErr +OSErr NSGetSharedLibrary(Str255 inLibName, CFragConnectionID* outID, Ptr* outMainAddr) { char* curLibPath; @@ -113,9 +84,9 @@ NSGetSharedLibrary(Str255 inLibName, CFragConnectionID* outID, Ptr* outMainAddr) freeCurLibPath = curLibPath = PR_GetLibraryPath(); if (curLibPath == NULL) - return (fragLibNotFound); + return (cfragNoLibraryErr); - tempErr = fragLibNotFound; + tempErr = cfragNoLibraryErr; do { @@ -161,7 +132,7 @@ NSGetSharedLibrary(Str255 inLibName, CFragConnectionID* outID, Ptr* outMainAddr) } else { - tempErr = fragLibNotFound; + tempErr = cfragNoLibraryErr; } } @@ -231,7 +202,7 @@ GetSharedLibraryFilterProc(const CInfoPBRec* const inCpb, Boolean* inWantQuit, v // see if this symbol is in this fragment if (LibInPefContainer(&fragSpec, pFilterData->inName, &codeOffset, &codeLength)) - tempErr = GetDiskFragment(&fragSpec, codeOffset, codeLength, pFilterData->inName, kLoadLib, &pFilterData->outID, &pFilterData->outAddress, errName); + tempErr = GetDiskFragment(&fragSpec, codeOffset, codeLength, pFilterData->inName, kLoadCFrag, &pFilterData->outID, &pFilterData->outAddress, errName); else return; @@ -258,11 +229,11 @@ GetSharedLibraryFilterProc(const CInfoPBRec* const inCpb, Boolean* inWantQuit, v static Boolean LibInPefContainer(const FSSpec* inSpec, StringPtr inName, UInt32* outCodeOffset, UInt32* outCodeLength) { - short refNum; - CfrgHeaderHandle hCfrg; - CfrgItem* pCurItem; - UInt32 curLibIndex; - Boolean found; + short refNum; + CFragResourceHandle hCfrg; + CFragResourceMember* pCurItem; + UInt32 curLibIndex; + Boolean found; // asume we didn't find it found = false; @@ -272,26 +243,26 @@ LibInPefContainer(const FSSpec* inSpec, StringPtr inName, UInt32* outCodeOffset, require(-1 != refNum, Exit); // grab out the alias record, if it's not there bail - hCfrg = (CfrgHeaderHandle) Get1Resource(kCFragResourceType, kCFragResourceID); + hCfrg = (CFragResourceHandle) Get1Resource(kCFragResourceType, kCFragResourceID); require(NULL != hCfrg, CloseResourceAndExit); HLock((Handle)hCfrg); // get ptr to first item - pCurItem = &(*hCfrg)->fCfrgItemArray[0]; - for (curLibIndex = 0; curLibIndex < (*hCfrg)->fItemCount; curLibIndex++) + pCurItem = &(*hCfrg)->firstMember; + for (curLibIndex = 0; curLibIndex < (*hCfrg)->memberCount; curLibIndex++) { // is this our library? - if ((pCurItem->fName[0] == inName[0]) && - (strncmp((char*) inName + 1, (char*) pCurItem->fName + 1, PR_MIN(pCurItem->fName[0], inName[0])) == 0)) + if ((pCurItem->name[0] == inName[0]) && + (strncmp((char*) inName + 1, (char*) pCurItem->name + 1, PR_MIN(pCurItem->name[0], inName[0])) == 0)) { - *outCodeOffset = pCurItem->fCodeOffset; - *outCodeLength = pCurItem->fCodeLength; + *outCodeOffset = pCurItem->offset; + *outCodeLength = pCurItem->length; found = true; } // skip to next one - pCurItem = (CfrgItem*) ((char*) pCurItem + pCurItem->fItemSize); + pCurItem = (CFragResourceMember*) ((char*) pCurItem + pCurItem->memberSize); } HUnlock((Handle)hCfrg); @@ -312,8 +283,8 @@ Exit: in the library to find the desired symbol. */ -extern OSErr -NSFindSymbol(CFragConnectionID inID, Str255 inSymName, Ptr* outMainAddr, SymClass *outSymClass) +OSErr +NSFindSymbol(CFragConnectionID inID, Str255 inSymName, Ptr* outMainAddr, CFragSymbolClass *outSymClass) { OSErr err; @@ -348,7 +319,7 @@ NSFindSymbol(CFragConnectionID inID, Str255 inSymName, Ptr* outMainAddr, SymClas /* if we didn't find it set the error code so below it won't take this symbol */ if (!found) - err = fragSymbolNotFound; + err = cfragNoSymbolErr; } } else @@ -359,3 +330,216 @@ NSFindSymbol(CFragConnectionID inID, Str255 inSymName, Ptr* outMainAddr, SymClas return (err); } + +#pragma mark - + + +/*----------------------------------------------------------------- + + GetNamedFragmentOffsets + + Get the offsets into the data fork of the named fragment, + by reading the 'cfrg' resoruce. + +-----------------------------------------------------------------*/ +static OSErr GetNamedFragmentOffsets(const FSSpec *fileSpec, const char* fragmentName, + UInt32 *outOffset, UInt32 *outLength) +{ + CFragResourceHandle cFragHandle; + short fileRefNum; + OSErr err = noErr; + + fileRefNum = FSpOpenResFile(fileSpec, fsRdPerm); + err = ResError(); + if (err != noErr) return err; + + cFragHandle = (CFragResourceHandle)Get1Resource(kCFragResourceType, kCFragResourceID); + if (!cFragHandle) + { + err = resNotFound; + goto done; + } + + /* nothing here moves memory, so no need to lock the handle */ + + err = cfragNoLibraryErr; /* in case of failure */ + *outOffset = 0; + *outLength = 0; + + /* Now look for the named fragment */ + if ((**cFragHandle).memberCount > 0) + { + CFragResourceMemberPtr memberPtr; + UInt16 i; + + for ( i = 0, memberPtr = &(**cFragHandle).firstMember; + i < (**cFragHandle).memberCount; + i ++, memberPtr = (CFragResourceMemberPtr)((char *)memberPtr + memberPtr->memberSize)) + { + char memberName[256]; + UInt16 nameLen = PR_MIN(memberPtr->name[0], 255); + + // avoid malloc here for speed + strncpy(memberName, (char *)&memberPtr->name[1], nameLen); + memberName[nameLen] = '\0'; + + // fragment names are case insensitive, so act like the system + if (PL_strcasecmp(memberName, fragmentName) == 0) + { + *outOffset = memberPtr->offset; + *outLength = memberPtr->length; + err = noErr; + break; + } + } + } + + /* Resource handle will go away when the res fork is closed */ + +done: + CloseResFile(fileRefNum); + return err; +} + + +/*----------------------------------------------------------------- + + GetIndexedFragmentOffsets + + Get the offsets into the data fork of the indexed fragment, + by reading the 'cfrg' resoruce. + +-----------------------------------------------------------------*/ +static OSErr GetIndexedFragmentOffsets(const FSSpec *fileSpec, UInt32 fragmentIndex, + UInt32 *outOffset, UInt32 *outLength, char **outFragmentName) +{ + CFragResourceHandle cFragHandle; + short fileRefNum; + OSErr err = noErr; + + fileRefNum = FSpOpenResFile(fileSpec, fsRdPerm); + err = ResError(); + if (err != noErr) return err; + + cFragHandle = (CFragResourceHandle)Get1Resource(kCFragResourceType, kCFragResourceID); + if (!cFragHandle) + { + err = resNotFound; + goto done; + } + + err = cfragNoLibraryErr; /* in case of failure */ + *outOffset = 0; + *outLength = 0; + *outFragmentName = NULL; + + /* the CStrFromPStr mallocs, so might move memory */ + HLock((Handle)cFragHandle); + + /* Now look for the named fragment */ + if ((**cFragHandle).memberCount > 0) + { + CFragResourceMemberPtr memberPtr; + UInt16 i; + + for ( i = 0, memberPtr = &(**cFragHandle).firstMember; + i < (**cFragHandle).memberCount; + i ++, memberPtr = (CFragResourceMemberPtr)((char *)memberPtr + memberPtr->memberSize)) + { + + if (i == fragmentIndex) + { + char *fragmentStr; + CStrFromPStr(memberPtr->name, &fragmentStr); + if (!fragmentStr) /* test for allocation failure */ + { + err = memFullErr; + break; + } + + *outFragmentName = fragmentStr; + *outOffset = memberPtr->offset; + *outLength = memberPtr->length; + err = noErr; + break; + } + } + } + + HUnlock((Handle)cFragHandle); + + /* Resource handle will go away when the res fork is closed */ + +done: + CloseResFile(fileRefNum); + return err; +} + + +/*----------------------------------------------------------------- + + NSLoadNamedFragment + + Load the named fragment from the specified file. Aliases must + have been resolved by this point. + +-----------------------------------------------------------------*/ + +OSErr NSLoadNamedFragment(const FSSpec *fileSpec, const char* fragmentName, CFragConnectionID *outConnectionID) +{ + UInt32 fragOffset, fragLength; + Ptr main; + Str255 fragName = "\p"; + Str255 errName; + OSErr err; + + err = GetNamedFragmentOffsets(fileSpec, fragmentName, &fragOffset, &fragLength); + if (err != noErr) return err; + + err = GetDiskFragment(fileSpec, fragOffset, fragLength, fragName, + kLoadCFrag, outConnectionID, &main, errName); + + return err; +} + + +/*----------------------------------------------------------------- + + NSLoadIndexedFragment + + Load the indexed fragment from the specified file. Aliases must + have been resolved by this point. + + *outFragName is a malloc'd block containing the fragment name, + if returning noErr. + +-----------------------------------------------------------------*/ + +OSErr NSLoadIndexedFragment(const FSSpec *fileSpec, PRUint32 fragmentIndex, + char** outFragName, CFragConnectionID *outConnectionID) +{ + UInt32 fragOffset, fragLength; + char *fragNameBlock = NULL; + Ptr main; + Str255 fragName = "\p"; + Str255 errName; + OSErr err; + + *outFragName = NULL; + + err = GetIndexedFragmentOffsets(fileSpec, fragmentIndex, &fragOffset, &fragLength, &fragNameBlock); + if (err != noErr) return err; + + err = GetDiskFragment(fileSpec, fragOffset, fragLength, fragName, + kLoadCFrag, outConnectionID, &main, errName); + if (err != noErr) + { + free(fragNameBlock); + return err; + } + + *outFragName = fragNameBlock; + return noErr; +} + + diff --git a/pr/src/md/mac/macsockotpt.c b/pr/src/md/mac/macsockotpt.c index dd9f5ad7..ab6409bc 100644 --- a/pr/src/md/mac/macsockotpt.c +++ b/pr/src/md/mac/macsockotpt.c @@ -19,8 +19,11 @@ /* This turns on UNIX style errors in OT 1.1 headers */ #define OTUNIXERRORS 1 +#include <string.h> + #include <Gestalt.h> #include <OpenTransport.h> +#include <OSUtils.h> #define GESTALT_OPEN_TPT_PRESENT gestaltOpenTptPresentMask #define GESTALT_OPEN_TPT_TCP_PRESENT gestaltOpenTptTCPPresentMask @@ -534,7 +537,7 @@ TryAgain: ErrorExit: if ((err == kOTNoAddressErr) && (++retryCount <= 4)) { - long finalTicks; + unsigned long finalTicks; Delay(100,&finalTicks); goto TryAgain; diff --git a/pr/src/md/mac/macthr.c b/pr/src/md/mac/macthr.c index 501cf629..341e1132 100644 --- a/pr/src/md/mac/macthr.c +++ b/pr/src/md/mac/macthr.c @@ -18,6 +18,8 @@ #include "primpl.h" +#include <string.h> + #include <Types.h> #include <Timer.h> #include <OSUtils.h> diff --git a/pr/src/md/mac/mactime.c b/pr/src/md/mac/mactime.c index 9297c130..f0c27258 100644 --- a/pr/src/md/mac/mactime.c +++ b/pr/src/md/mac/mactime.c @@ -17,10 +17,12 @@ */ #include <OSUtils.h> -#include <time.h> +#include <Timer.h> #include "primpl.h" +#include "mactime.h" + PR_IMPLEMENT(UnsignedWide) dstLocalBaseMicroseconds; PR_IMPLEMENT(unsigned long) gJanuaryFirst1970Seconds; diff --git a/pr/src/md/unix/Makefile.in b/pr/src/md/unix/Makefile.in index e2eb2369..865dba7c 100644 --- a/pr/src/md/unix/Makefile.in +++ b/pr/src/md/unix/Makefile.in @@ -136,6 +136,11 @@ DGUX_CSRCS = \ QNX_CSRCS = \ qnx.c \ $(NULL) + +NTO_CSRCS = \ + nto.c \ + $(NULL) + endif # !USE_AUTOCONF ifeq ($(PTHREADS_USER),1) @@ -211,8 +216,12 @@ ifeq ($(OS_ARCH),DGUX) CSRCS += $(DGUX_CSRCS) endif ifeq ($(OS_ARCH),QNX) +ifeq ($(OS_TARGET),NTO) +CSRCS += $(NTO_CSRCS) +else CSRCS += $(QNX_CSRCS) endif +endif # # Some Unix platforms have an assembly language file. diff --git a/pr/tests/Makefile.in b/pr/tests/Makefile.in index 08b0d277..c267699c 100644 --- a/pr/tests/Makefile.in +++ b/pr/tests/Makefile.in @@ -484,7 +484,7 @@ else ifeq ($(OS_TARGET),OS2) $(LINK) $(EXEFLAGS) $(LDOPTS) $< $(LIBPLC) $(LIBPR) $(OS_LIBS) $(EXTRA_LIBS) else - link $(LDOPTS) $< $(LIBPLC) $(LIBPR) wsock32.lib -out:$@ + link $(LDOPTS) $(EXTRA_LDOPTS) $< $(LIBPLC) $(LIBPR) $(EXTRA_LIBS) wsock32.lib -out:$@ endif endif else |