--- ./sal/inc/osl/file.h.opt	2005-09-08 14:27:23.000000000 +0000
+++ ./sal/inc/osl/file.h	2005-10-31 16:29:51.000000000 +0000
@@ -183,7 +183,7 @@
 	@see osl_closeDirectory()
 */
 
-oslFileError SAL_CALL osl_openDirectory( rtl_uString *pustrDirectoryURL, oslDirectory *pDirectory);
+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_openDirectory( rtl_uString *pustrDirectoryURL, oslDirectory *pDirectory);
 
 
 /**	Retrieve the next item of a previously opened directory. 
@@ -217,7 +217,7 @@
 	@see osl_getFileStatus()
 */
 
-oslFileError SAL_CALL osl_getNextDirectoryItem(
+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_getNextDirectoryItem(
 	oslDirectory Directory,
 	oslDirectoryItem *pItem,
 	sal_uInt32	 uHint
@@ -239,7 +239,7 @@
 	@see osl_openDirectory()
 */
 
-oslFileError SAL_CALL osl_closeDirectory(oslDirectory Directory);
+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_closeDirectory(oslDirectory Directory);
 
 
 /**	Retrieve a single directory item. 
@@ -278,7 +278,7 @@
 	@see osl_getNextDirectoryItem()
 */
 
-oslFileError SAL_CALL osl_getDirectoryItem(
+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_getDirectoryItem(
 	rtl_uString *pustrFileURL, 
 	oslDirectoryItem *pItem
 	);
@@ -301,7 +301,7 @@
     @see osl_releaseDirectoryItem()
 */
 
-oslFileError SAL_CALL osl_acquireDirectoryItem( oslDirectoryItem Item );
+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_acquireDirectoryItem( oslDirectoryItem Item );
 
 
 /**	Decrease the refcount of a directory item handle. 
@@ -323,7 +323,7 @@
 	@see osl_acquireDirectoryItem()
 */
 
-oslFileError SAL_CALL osl_releaseDirectoryItem( oslDirectoryItem Item ); 
+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_releaseDirectoryItem( oslDirectoryItem Item ); 
 
 /* File types */
 
@@ -446,7 +446,7 @@
 	@see oslFileStatus
 */
 
-oslFileError SAL_CALL osl_getFileStatus( oslDirectoryItem Item, oslFileStatus *pStatus, sal_uInt32 uFieldMask );
+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_getFileStatus( oslDirectoryItem Item, oslFileStatus *pStatus, sal_uInt32 uFieldMask );
 
 
 typedef void *oslVolumeDeviceHandle;
@@ -468,7 +468,7 @@
     @see osl_getVolumeInformation()
 */
 
-oslFileError SAL_CALL osl_unmountVolumeDevice( oslVolumeDeviceHandle Handle );
+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_unmountVolumeDevice( oslVolumeDeviceHandle Handle );
 
 
 /** Automount a volume device.
@@ -487,7 +487,7 @@
     @see osl_getVolumeInformation()
 */
 
-oslFileError SAL_CALL osl_automountVolumeDevice( oslVolumeDeviceHandle Handle );
+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_automountVolumeDevice( oslVolumeDeviceHandle Handle );
 
 
 /** Release a volume device handle.
@@ -508,7 +508,7 @@
     @see osl_getVolumeInformation()    
 */
 
-oslFileError SAL_CALL osl_releaseVolumeDeviceHandle( oslVolumeDeviceHandle Handle );
+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_releaseVolumeDeviceHandle( oslVolumeDeviceHandle Handle );
 
 /** Acquire a volume device handle.
 
@@ -528,7 +528,7 @@
     @see osl_getVolumeInformation()
 */
 
-oslFileError SAL_CALL osl_acquireVolumeDeviceHandle( oslVolumeDeviceHandle Handle );
+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_acquireVolumeDeviceHandle( oslVolumeDeviceHandle Handle );
 
 
 /** Get the full qualified URL where a device is mounted to.
@@ -559,7 +559,7 @@
 	@see	osl_unmountVolumeDevice()
 */
 
-oslFileError SAL_CALL osl_getVolumeDeviceMountPath( oslVolumeDeviceHandle Handle, rtl_uString **ppustrDirectoryURL);
+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_getVolumeDeviceMountPath( oslVolumeDeviceHandle Handle, rtl_uString **ppustrDirectoryURL);
 
 /* Volume attributes */
 
@@ -654,7 +654,7 @@
 	@see	oslVolumeInfo
 */	
 
-oslFileError SAL_CALL osl_getVolumeInformation(
+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_getVolumeInformation(
     rtl_uString *pustrDirectoryURL, 
     oslVolumeInfo *pInfo, 
     sal_uInt32 uFieldMask );
@@ -716,7 +716,7 @@
 	@see osl_getFileSize()
 */
 
-oslFileError SAL_CALL osl_openFile( rtl_uString *pustrFileURL, oslFileHandle *pHandle, sal_uInt32 uFlags );
+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_openFile( rtl_uString *pustrFileURL, oslFileHandle *pHandle, sal_uInt32 uFlags );
 
 #define osl_Pos_Absolut 1
 #define osl_Pos_Current 2
@@ -742,7 +742,7 @@
 	@see	osl_getFilePos()
 */
 
-oslFileError SAL_CALL osl_setFilePos( oslFileHandle Handle, sal_uInt32 uHow, sal_Int64 uPos );
+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_setFilePos( oslFileHandle Handle, sal_uInt32 uHow, sal_Int64 uPos );
 
 
 /**	Retrieve the current position of the internal pointer of an open file.
@@ -764,7 +764,7 @@
 	@see osl_writeFile()
 */
 
-oslFileError SAL_CALL osl_getFilePos( oslFileHandle Handle, sal_uInt64 *pPos );
+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_getFilePos( oslFileHandle Handle, sal_uInt64 *pPos );
 
 
 /**	Set the file size of an open file. 
@@ -789,7 +789,7 @@
 	@see osl_getFileSize()
 */
 
-oslFileError SAL_CALL osl_setFileSize( oslFileHandle Handle, sal_uInt64 uSize );
+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_setFileSize( oslFileHandle Handle, sal_uInt64 uSize );
 
 
 /**	Get the file size of an open file. 
@@ -813,7 +813,7 @@
 	@see osl_getFileStatus()
 */
 
-oslFileError SAL_CALL osl_getFileSize( oslFileHandle Handle, sal_uInt64 *pSize );
+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_getFileSize( oslFileHandle Handle, sal_uInt64 *pSize );
 
 
 /**	Read a number of bytes from a file. 
@@ -851,7 +851,7 @@
 	@see osl_setFilePos()
 */
 
-oslFileError SAL_CALL osl_readFile( oslFileHandle Handle, void *pBuffer, sal_uInt64 uBytesRequested, sal_uInt64 *pBytesRead );
+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_readFile( oslFileHandle Handle, void *pBuffer, sal_uInt64 uBytesRequested, sal_uInt64 *pBytesRead );
 
 
 /**	Test if the end of a file is reached.
@@ -879,7 +879,7 @@
 	@see osl_setFilePos()
 */
 
-oslFileError SAL_CALL osl_isEndOfFile( oslFileHandle Handle, sal_Bool *pIsEOF );
+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_isEndOfFile( oslFileHandle Handle, sal_Bool *pIsEOF );
 
 
 /** Write a number of bytes to a file. 
@@ -919,7 +919,7 @@
 	@see osl_setFilePos()
 */
 
-oslFileError SAL_CALL osl_writeFile( oslFileHandle Handle, const void *pBuffer, sal_uInt64 uBytesToWrite, sal_uInt64 *pBytesWritten );
+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_writeFile( oslFileHandle Handle, const void *pBuffer, sal_uInt64 uBytesToWrite, sal_uInt64 *pBytesWritten );
 
 
 /** Read a line from a file. 
@@ -949,7 +949,7 @@
 	@see osl_setFilePos()
 */
 
-oslFileError SAL_CALL osl_readLine( oslFileHandle Handle, sal_Sequence** ppSequence );
+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_readLine( oslFileHandle Handle, sal_Sequence** ppSequence );
 
 /** Synchronize the memory representation of a file with that on the physical medium.
 
@@ -985,7 +985,7 @@
       @see osl_openFile()
       @see osl_writeFile()      
 */
-oslFileError SAL_CALL osl_syncFile(oslFileHandle Handle);
+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_syncFile(oslFileHandle Handle);
 
 /**	Close an open file.
 
@@ -1004,7 +1004,7 @@
 	@see osl_openFile()
 */
 
-oslFileError SAL_CALL osl_closeFile( oslFileHandle Handle );
+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_closeFile( oslFileHandle Handle );
 
 	
 /**	Create a directory.
@@ -1034,7 +1034,7 @@
 	@see osl_removeDirectory()
 */
 
-oslFileError SAL_CALL osl_createDirectory( rtl_uString* pustrDirectoryURL );
+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_createDirectory( rtl_uString* pustrDirectoryURL );
 
 
 /**	Remove an empty directory.
@@ -1065,7 +1065,7 @@
 	@see osl_createDirectory()
 */
 	
-oslFileError SAL_CALL osl_removeDirectory( rtl_uString* pustrDirectoryURL );
+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_removeDirectory( rtl_uString* pustrDirectoryURL );
 
 /** Function pointer representing a function that will be called by osl_createDirectoryPath
     if a directory has been created.
@@ -1143,7 +1143,7 @@
 	@see oslFileError
 	@see osl_createDirectory
 */
-oslFileError SAL_CALL osl_createDirectoryPath(
+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_createDirectoryPath(
     rtl_uString* aDirectoryUrl, 
     oslDirectoryCreationCallbackFunc aDirectoryCreationCallbackFunc, 
     void* pData);
@@ -1176,7 +1176,7 @@
 	@see osl_openFile()
 */
 
-oslFileError SAL_CALL osl_removeFile( rtl_uString* pustrFileURL );
+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_removeFile( rtl_uString* pustrFileURL );
 
 
 /** Copy a file to a new destination. 
@@ -1205,7 +1205,7 @@
 	@see	osl_removeFile()
 */
 
-oslFileError SAL_CALL osl_copyFile( rtl_uString* pustrSourceFileURL, rtl_uString *pustrDestFileURL );
+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_copyFile( rtl_uString* pustrSourceFileURL, rtl_uString *pustrDestFileURL );
 
 
 /** Move a file or directory to a new destination or renames it. 
@@ -1232,7 +1232,7 @@
 	@see osl_copyFile()
 */
 
-oslFileError SAL_CALL osl_moveFile( rtl_uString* pustrSourceFileURL, rtl_uString *pustrDestFileURL );
+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_moveFile( rtl_uString* pustrSourceFileURL, rtl_uString *pustrDestFileURL );
 
 
 /**	Determine a valid unused canonical name for a requested name. 
@@ -1256,7 +1256,7 @@
 	@see osl_getFileStatus()
 */
 
-oslFileError SAL_CALL osl_getCanonicalName( rtl_uString *pustrRequestedURL, rtl_uString **ppustrValidURL);
+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_getCanonicalName( rtl_uString *pustrRequestedURL, rtl_uString **ppustrValidURL);
 
 
 /**	Convert a path relative to a given directory into an full qualified file URL.
@@ -1294,7 +1294,7 @@
 	@see	osl_getFileStatus()
 */
 
-oslFileError SAL_CALL osl_getAbsoluteFileURL( 
+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_getAbsoluteFileURL( 
     rtl_uString* pustrBaseDirectoryURL, 
     rtl_uString *pustrRelativeFileURL, 
     rtl_uString **ppustrAbsoluteFileURL );
@@ -1315,7 +1315,7 @@
 	@see osl_getSystemPathFromFileURL()
 */
 
-oslFileError SAL_CALL osl_getFileURLFromSystemPath( rtl_uString *pustrSystemPath, rtl_uString **ppustrFileURL);
+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_getFileURLFromSystemPath( rtl_uString *pustrSystemPath, rtl_uString **ppustrFileURL);
 
 
 /**	Searche a full qualified system path or a file URL.
@@ -1346,7 +1346,7 @@
 	@see osl_getSystemPathFromFileURL()
 */
 
-oslFileError SAL_CALL osl_searchFileURL( rtl_uString *pustrFileName, rtl_uString *pustrSearchPath, rtl_uString **ppustrFileURL ); 
+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_searchFileURL( rtl_uString *pustrFileName, rtl_uString *pustrSearchPath, rtl_uString **ppustrFileURL ); 
 
 
 /**	Convert a file URL into a system dependend path.
@@ -1364,7 +1364,7 @@
 	@see osl_getFileURLFromSystemPath()
 */
 
-oslFileError SAL_CALL osl_getSystemPathFromFileURL( rtl_uString *pustrFileURL, rtl_uString **ppustrSystemPath);
+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_getSystemPathFromFileURL( rtl_uString *pustrFileURL, rtl_uString **ppustrSystemPath);
 
 
 /** Function pointer representing the function called back from osl_abbreviateSystemPath
@@ -1403,7 +1403,7 @@
 	@see	oslCalcTextWidthFunc
 */
 
-oslFileError SAL_CALL osl_abbreviateSystemPath( 
+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_abbreviateSystemPath( 
     rtl_uString *ustrSystemPath, 
     rtl_uString **pustrCompacted, 
     sal_uInt32 uMaxWidth, 
@@ -1425,7 +1425,7 @@
 	@see osl_getFileStatus()
 */
 
-oslFileError SAL_CALL osl_setFileAttributes( rtl_uString *pustrFileURL, sal_uInt64 uAttributes ); 
+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_setFileAttributes( rtl_uString *pustrFileURL, sal_uInt64 uAttributes ); 
 
 
 /**	Set the file time.
@@ -1450,7 +1450,7 @@
 	@see osl_getFileStatus()
 */
 
-oslFileError SAL_CALL osl_setFileTime( 
+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_setFileTime( 
     rtl_uString *pustrFileURL,	
     const TimeValue *aCreationTime,
 	const TimeValue *aLastAccessTime,
@@ -1467,7 +1467,7 @@
 	osl_File_E_NOENT no such file or directory not found
 */
 
-oslFileError SAL_CALL osl_getTempDirURL( rtl_uString **pustrTempDirURL );
+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_getTempDirURL( rtl_uString **pustrTempDirURL );
 
 
 /** Creates a temporary file in the directory provided by the caller or the
@@ -1522,7 +1522,7 @@
 	@see    osl_getTempDirURL()	
 */
 
-oslFileError SAL_CALL osl_createTempFile(
+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_createTempFile(
     rtl_uString*   pustrDirectoryURL, 
     oslFileHandle* pHandle, 
     rtl_uString**  ppustrTempFileURL);
@@ -1532,5 +1532,3 @@
 #endif
 
 #endif	/* _OSL_FILE_H_ */
-
-
--- ./sal/inc/osl/process.h.opt	2005-09-08 14:30:44.000000000 +0000
+++ ./sal/inc/osl/process.h	2005-10-31 16:29:51.000000000 +0000
@@ -206,7 +206,7 @@
 	@see osl_freeProcessHandle
 	@see osl_loginUser
 */
-oslProcessError SAL_CALL osl_executeProcess(
+oslProcessError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_executeProcess(
     rtl_uString* ustrImageName,
 	rtl_uString* ustrArguments[],
     sal_uInt32  nArguments,
@@ -292,7 +292,7 @@
 	@see osl_loginUser
 	@see osl_closeFile
 */
-oslProcessError SAL_CALL osl_executeProcess_WithRedirectedIO(
+oslProcessError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_executeProcess_WithRedirectedIO(
     rtl_uString* strImageName,
 	rtl_uString* ustrArguments[],
     sal_uInt32 nArguments,
@@ -313,7 +313,7 @@
     @see osl_getProcess
     @see osl_joinProcess
  */
-oslProcessError SAL_CALL osl_terminateProcess(oslProcess Process);
+oslProcessError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_terminateProcess(oslProcess Process);
 
 
 /** @deprecated
@@ -322,13 +322,13 @@
 
     @return the process handle on success, NULL in all other cases
  */
-oslProcess SAL_CALL osl_getProcess(oslProcessIdentifier Ident);
+oslProcess SAL_CALL SAL_DLLPUBLIC_EXPORT osl_getProcess(oslProcessIdentifier Ident);
 
 
 /** Free the specified proces-handle.
 	@param Process [in]
 */
-void SAL_CALL osl_freeProcessHandle(oslProcess Process);
+void SAL_CALL SAL_DLLPUBLIC_EXPORT osl_freeProcessHandle(oslProcess Process);
 
 
 /** Wait for completation of the specified childprocess.
@@ -336,7 +336,7 @@
 	@return ols_Process_E_None
 	@see osl_executeProcess
 */
-oslProcessError SAL_CALL osl_joinProcess(oslProcess Process);
+oslProcessError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_joinProcess(oslProcess Process);
 
 /** Wait with a timeout for the completion of the specified child
     process.
@@ -355,7 +355,7 @@
 
     @see osl_executeProcess
 */
-oslProcessError SAL_CALL osl_joinProcessWithTimeout(oslProcess Process, const TimeValue* pTimeout);
+oslProcessError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_joinProcessWithTimeout(oslProcess Process, const TimeValue* pTimeout);
 
 /** Retrieves information about a Process
     @param Process [in] the process handle of the process
@@ -372,7 +372,7 @@
                         retrieved valid information fields.
     @return osl_Process_E_None on success, osl_Process_E_Unknown on failure.
  */
-oslProcessError SAL_CALL osl_getProcessInfo(oslProcess Process, oslProcessData Fields, 
+oslProcessError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_getProcessInfo(oslProcess Process, oslProcessData Fields, 
                                    oslProcessInfo* pInfo);
 
 /** Get the filename of the executable. 
@@ -380,13 +380,13 @@
 	@return osl_Process_E_None or does not return. 	
 	@see osl_executeProcess 
 */
-oslProcessError SAL_CALL osl_getExecutableFile(rtl_uString **strFile);
+oslProcessError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_getExecutableFile(rtl_uString **strFile);
 
 /** @return the number of commandline arguments passed to the main-function of
     this process
     @see osl_getCommandArg
 */
-sal_uInt32 SAL_CALL osl_getCommandArgCount(void);
+sal_uInt32 SAL_CALL SAL_DLLPUBLIC_EXPORT osl_getCommandArgCount(void);
 
 /** Get the nArg-th command-line argument passed to the main-function of this process.
     @param nArg [in] The number of the argument to return.
@@ -394,7 +394,7 @@
 	@return osl_Process_E_None or does not return. 	
 	@see osl_executeProcess
 */
-oslProcessError SAL_CALL osl_getCommandArg(sal_uInt32 nArg, rtl_uString **strCommandArg);
+oslProcessError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_getCommandArg(sal_uInt32 nArg, rtl_uString **strCommandArg);
 
 /** Set the command-line arguments as passed to the main-function of this process.
 	@param argc [in] The number of elements in the argv array.
@@ -403,13 +403,13 @@
 	@see osl_getCommandArgCount
 	@see osl_getCommandArg
 */
-void SAL_CALL osl_setCommandArgs (int argc, char **argv);
+void SAL_CALL SAL_DLLPUBLIC_EXPORT osl_setCommandArgs (int argc, char **argv);
 
 /** Get the value of one enviroment variable.
 	@param strVar [in] denotes the name of the variable to get.
 	@param strValue [out] string that receives the value of environment variable.
 */
-oslProcessError SAL_CALL osl_getEnvironment(rtl_uString *strVar, rtl_uString **strValue);
+oslProcessError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_getEnvironment(rtl_uString *strVar, rtl_uString **strValue);
 
 /** Get the working directory of the current process as a file URL. 
 
@@ -417,7 +417,7 @@
 	@param	pustrWorkingDir [out] string that receives the working directory file URL.
 */
 
-oslProcessError SAL_CALL osl_getProcessWorkingDir( rtl_uString **pustrWorkingDir );
+oslProcessError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_getProcessWorkingDir( rtl_uString **pustrWorkingDir );
 
 /** Get the locale the process is currently running in. 
 
@@ -428,7 +428,7 @@
     @see osl_setProcessLocale
 */
 
-oslProcessError SAL_CALL osl_getProcessLocale( rtl_Locale ** ppLocale );
+oslProcessError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_getProcessLocale( rtl_Locale ** ppLocale );
 
 /** Change the locale of the process. 
 
@@ -436,12 +436,12 @@
     @see osl_getProcessLocale
 */
 
-oslProcessError SAL_CALL osl_setProcessLocale( rtl_Locale * pLocale );
+oslProcessError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_setProcessLocale( rtl_Locale * pLocale );
  
 
-sal_Bool SAL_CALL osl_sendResourcePipe(oslPipe Pipe, oslSocket Socket);
+sal_Bool SAL_CALL SAL_DLLPUBLIC_EXPORT osl_sendResourcePipe(oslPipe Pipe, oslSocket Socket);
  
-oslSocket SAL_CALL osl_receiveResourcePipe(oslPipe Pipe);
+oslSocket SAL_CALL SAL_DLLPUBLIC_EXPORT osl_receiveResourcePipe(oslPipe Pipe);
 
 #ifdef __cplusplus
 }
--- ./sal/inc/rtl/unload.h.opt	2005-09-08 14:43:39.000000000 +0000
+++ ./sal/inc/rtl/unload.h	2005-10-31 16:29:51.000000000 +0000
@@ -179,7 +179,7 @@
 @param module a module handle as is obtained by osl_loadModule 
 @return sal_True - the module could be registered for unloading, sal_False otherwise 
 */
-sal_Bool SAL_CALL rtl_registerModuleForUnloading( oslModule module);
+sal_Bool SAL_CALL SAL_DLLPUBLIC_EXPORT rtl_registerModuleForUnloading( oslModule module);
 
 /**
 The function revokes the registration of a module. By calling the function for 
@@ -192,7 +192,7 @@
 
 @param module a module handle as is obtained by osl_loadModule
 */
-void SAL_CALL rtl_unregisterModuleForUnloading( oslModule module);
+void SAL_CALL SAL_DLLPUBLIC_EXPORT rtl_unregisterModuleForUnloading( oslModule module);
 /**
 This function sets off the unloading mechanism. At first it notifies the 
 unloading listeners in order to give them a chance to do cleanup and get 
@@ -218,7 +218,7 @@
 @param libUnused span of time that a module must be unused to be unloaded. the 
 argument is optional.
 */
-void SAL_CALL rtl_unloadUnusedModules( TimeValue* libUnused);
+void SAL_CALL SAL_DLLPUBLIC_EXPORT rtl_unloadUnusedModules( TimeValue* libUnused);
 
 /** 
 rtl_addUnloadingListener takes an argument of this type.
@@ -240,7 +240,7 @@
 @param this  - a value to distinguish different listener instances
 @return identifier which is used in rtl_removeUnloadingListener
 */
-sal_Int32 SAL_CALL rtl_addUnloadingListener( rtl_unloadingListenerFunc callback, void* _this);
+sal_Int32 SAL_CALL SAL_DLLPUBLIC_EXPORT rtl_addUnloadingListener( rtl_unloadingListenerFunc callback, void* _this);
 
 /**
 Listeners (the callback functions) must be unregistered before the listener code 
@@ -250,7 +250,7 @@
 
 @param cookie is an identifier as returned by <code>rtl_addUnloadingListener</code> function.
 */
-void SAL_CALL rtl_removeUnloadingListener( sal_Int32 cookie );
+void SAL_CALL SAL_DLLPUBLIC_EXPORT rtl_removeUnloadingListener( sal_Int32 cookie );
 
 
 /** 
@@ -310,17 +310,17 @@
 /** Default implementation for <code>rtl_ModuleCount.acquire</code>. Use this function along with 
 <code>rtl_StandardModuleCount</code>.
 */
-void rtl_moduleCount_acquire(rtl_ModuleCount * that );
+void SAL_DLLPUBLIC_EXPORT rtl_moduleCount_acquire(rtl_ModuleCount * that );
 /** Default implementation for <code>rtl_ModuleCount.release</code>.
 Use this function along with 
 <code>rtl_StandardModuleCount</code>.
 */
-void rtl_moduleCount_release( rtl_ModuleCount * that );
+void SAL_DLLPUBLIC_EXPORT rtl_moduleCount_release( rtl_ModuleCount * that );
 
 /** Default implementation for <code>component_canUnload</code>. Use this function along with 
 <code>rtl_StandardModuleCount</code>.
 */
-sal_Bool rtl_moduleCount_canUnload( rtl_StandardModuleCount * that, TimeValue* libUnused);
+sal_Bool SAL_DLLPUBLIC_EXPORT rtl_moduleCount_canUnload( rtl_StandardModuleCount * that, TimeValue* libUnused);
 
 
 #ifdef __cplusplus
--- ./solenv/inc/unxlngi6.mk.opt	2005-10-31 16:15:17.000000000 +0000
+++ ./solenv/inc/unxlngi6.mk	2005-10-31 16:33:13.000000000 +0000
@@ -64,7 +64,7 @@
 
 # architecture dependent flags for the C and C++ compiler that can be changed by
 # exporting the variable ARCH_FLAGS="..." in the shell, which is used to start build
-ARCH_FLAGS*=-mtune=pentiumpro
+ARCH_FLAGS*=-march=i686 -mtune=i686
 
 # name of C++ Compiler
 CXX*=g++
@@ -79,25 +79,25 @@
 
 # flags to enable build with symbols; required for crashdump feature
 .IF "$(ENABLE_SYMBOLS)"=="SMALL"
-CFLAGSENABLESYMBOLS=-g1
+CFLAGSENABLESYMBOLS=
 .ELSE
-CFLAGSENABLESYMBOLS=-g # was temporarily commented out, reenabled before Beta
+CFLAGSENABLESYMBOLS= # was temporarily commented out, reenabled before Beta
 
 .ENDIF
 
 # flags for the C++ Compiler
-CFLAGSCC= -pipe $(ARCH_FLAGS)
+CFLAGSCC= -O2 -Os -fno-omit-frame-pointer -fweb -frename-registers -pipe $(ARCH_FLAGS)
 # Flags for enabling exception handling
 CFLAGSEXCEPTIONS=-fexceptions -fno-enforce-eh-specs
 # Flags for disabling exception handling
 CFLAGS_NO_EXCEPTIONS=-fno-exceptions
 
 # -fpermissive should be removed as soon as possible
-CFLAGSCXX= -pipe $(ARCH_FLAGS)
+CFLAGSCXX= -O2 -Os -fno-omit-frame-pointer -fweb -frename-registers -pipe $(ARCH_FLAGS)
 CFLAGSCXX+= -Wno-ctor-dtor-privacy
 PICSWITCH:=-fpic
 .IF "$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE"
-CFLAGSCXX += -fvisibility-inlines-hidden
+CFLAGSCXX += -fvisibility-inlines-hidden # -fvisibility=hidden
 .ENDIF # "$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE"
 
 # Compiler flags for compiling static object in single threaded environment with graphical user interface
@@ -115,14 +115,14 @@
 # Compiler flags for profiling
 CFLAGSPROF=
 # Compiler flags for debugging
-CFLAGSDEBUG=-g
+CFLAGSDEBUG=
 CFLAGSDBGUTIL=
 # Compiler flags for enabling optimizations
 .IF "$(PRODUCT)"!=""
-CFLAGSOPT=-Os -fno-strict-aliasing		# optimizing for products
+CFLAGSOPT=-O2 -Os -fno-omit-frame-pointer -fweb -frename-registers -fno-strict-aliasing		# optimizing for products
 CFLAGSOPT+=-Wuninitialized				# not supported without optimization
 .ELSE 	# "$(PRODUCT)"!=""
-CFLAGSOPT=   							# no optimizing for non products
+CFLAGSOPT=-O2 -Os -fno-omit-frame-pointer -fweb -frename-registers -fno-strict-aliasing   							# no optimizing for non products
 .ENDIF	# "$(PRODUCT)"!=""
 # Compiler flags for disabling optimizations
 CFLAGSNOOPT=-O0
@@ -156,12 +156,12 @@
 
 LINKFLAGSTACK=
 LINKFLAGSPROF=
-LINKFLAGSDEBUG=-g
+LINKFLAGSDEBUG=
 LINKFLAGSOPT=
 
 # linker flags for optimization (symbol hashtable)
 # for now, applied to symbol scoped libraries, only
-LINKFLAGSOPTIMIZE*=-Wl,-O1
+LINKFLAGSOPTIMIZE*=-Wl,-O2
 LINKVERSIONMAPFLAG=$(LINKFLAGSOPTIMIZE) -Wl,--version-script
 
 SONAME_SWITCH=-Wl,-h
--- ./store/inc/store/store.h.opt	2005-09-08 08:39:22.000000000 +0000
+++ ./store/inc/store/store.h	2005-10-31 16:29:51.000000000 +0000
@@ -53,7 +53,7 @@
     @param  Handle [in] the Handle.
     @return store_E_None upon success
  */
-storeError SAL_CALL store_acquireHandle (
+storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_acquireHandle (
 	storeHandle Handle
 ) SAL_THROW_EXTERN_C();
 
@@ -63,7 +63,7 @@
     @return store_E_None          upon success,
             store_E_InvalidHandle otherwise.
  */
-storeError SAL_CALL store_releaseHandle (
+storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_releaseHandle (
 	storeHandle Handle
 ) SAL_THROW_EXTERN_C();
 
@@ -80,7 +80,7 @@
     @param  phFile [out] the File Handle.
     @return store_E_None upon success
  */
-storeError SAL_CALL store_createMemoryFile (
+storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_createMemoryFile (
 	sal_uInt16       nPageSize,
 	storeFileHandle *phFile
 ) SAL_THROW_EXTERN_C();
@@ -98,7 +98,7 @@
 	@param  phFile [out] the File Handle.
     @return store_E_None upon success
  */
-storeError SAL_CALL store_openFile (
+storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_openFile (
 	rtl_uString     *pFilename,
 	storeAccessMode  eAccessMode,
 	sal_uInt16       nPageSize,
@@ -111,7 +111,7 @@
     @return store_E_None upon     success,
             store_E_InvalidHandle otherwise.
  */
-storeError SAL_CALL store_closeFile (
+storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_closeFile (
 	storeFileHandle hFile
 ) SAL_THROW_EXTERN_C();
 
@@ -120,7 +120,7 @@
     @param  hFile [in] the File Handle.
     @return store_E_None upon success
  */
-storeError SAL_CALL store_flushFile (
+storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_flushFile (
 	storeFileHandle hFile
 ) SAL_THROW_EXTERN_C();
 
@@ -130,7 +130,7 @@
     @param  pnRefCount [out] number of open directories and streams.
     @return store_E_None upon success
  */
-storeError SAL_CALL store_getFileRefererCount (
+storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_getFileRefererCount (
 	storeFileHandle  hFile,
 	sal_uInt32      *pnRefCount
 ) SAL_THROW_EXTERN_C();
@@ -141,7 +141,7 @@
     @param  pnSize [out] the file size in bytes.
     @return store_E_None upon success
  */
-storeError SAL_CALL store_getFileSize (
+storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_getFileSize (
 	storeFileHandle  hFile,
 	sal_uInt32      *pnSize
 ) SAL_THROW_EXTERN_C();
@@ -154,7 +154,7 @@
     @param  pDstFilename [in] created with store_AccessCreate.
     @return store_E_None upon success
  */
-storeError SAL_CALL store_rebuildFile (
+storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_rebuildFile (
 	rtl_uString *pSrcFilename,
 	rtl_uString *pDstFilename
 ) SAL_THROW_EXTERN_C();
@@ -176,7 +176,7 @@
     @param  phDirectory [out] the Directory Handle.
     @return store_E_None upon success
  */
-storeError SAL_CALL store_openDirectory (
+storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_openDirectory (
 	storeFileHandle       hFile,
 	rtl_uString          *pPath,
 	rtl_uString          *pName,
@@ -190,7 +190,7 @@
     @return store_E_None          upon success,
             store_E_InvalidHandle otherwise.
  */
-storeError SAL_CALL store_closeDirectory (
+storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_closeDirectory (
 	storeDirectoryHandle hDirectory
 ) SAL_THROW_EXTERN_C();
 
@@ -201,7 +201,7 @@
     @return store_E_None       upon success,
             store_E_NoMoreFile upon end of iteration.
  */
-storeError SAL_CALL store_findFirst (
+storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_findFirst (
 	storeDirectoryHandle  hDirectory,
 	storeFindData        *pFindData
 ) SAL_THROW_EXTERN_C();
@@ -213,7 +213,7 @@
     @return store_E_None       upon success,
             store_E_NoMoreFile upon end of iteration.
  */
-storeError SAL_CALL store_findNext (
+storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_findNext (
 	storeDirectoryHandle  hDirectory,
 	storeFindData        *pFindData
 ) SAL_THROW_EXTERN_C();
@@ -235,7 +235,7 @@
     @param  phStrm [out] the Stream Handle.
     @return store_E_None upon success
  */
-storeError SAL_CALL store_openStream (
+storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_openStream (
 	storeFileHandle    hFile,
 	rtl_uString       *pPath,
 	rtl_uString       *pName,
@@ -249,7 +249,7 @@
     @return store_E_None          upon success,
             store_E_InvalidHandle otherwise.
  */
-storeError SAL_CALL store_closeStream (
+storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_closeStream (
 	storeStreamHandle hStrm
 ) SAL_THROW_EXTERN_C();
 
@@ -262,7 +262,7 @@
     @param  pnDone [out] the number of bytes actually read.
     @return store_E_None upon success
  */
-storeError SAL_CALL store_readStream (
+storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_readStream (
 	storeStreamHandle  hStrm,
 	sal_uInt32         nOffset,
 	void              *pBuffer,
@@ -279,7 +279,7 @@
     @param  pnDone [out] the number of bytes actually written.
     @return store_E_None upon success
  */
-storeError SAL_CALL store_writeStream (
+storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_writeStream (
 	storeStreamHandle  hStrm,
 	sal_uInt32         nOffset,
 	const void        *pBuffer,
@@ -292,7 +292,7 @@
     @param  hStrm [in] the Stream Handle.
     @return store_E_None upon success
  */
-storeError SAL_CALL store_flushStream (
+storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_flushStream (
 	storeStreamHandle hStrm
 ) SAL_THROW_EXTERN_C();
 
@@ -302,7 +302,7 @@
     @param  pnSize [out] the stream size in bytes.
     @return store_E_None upon success
  */
-storeError SAL_CALL store_getStreamSize (
+storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_getStreamSize (
 	storeStreamHandle  hStrm,
 	sal_uInt32        *pnSize
 ) SAL_THROW_EXTERN_C();
@@ -313,7 +313,7 @@
     @param  nSize [in] the new stream size in bytes.
     @return store_E_None upon success
  */
-storeError SAL_CALL store_setStreamSize (
+storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_setStreamSize (
 	storeStreamHandle hStrm,
 	sal_uInt32        nSize
 ) SAL_THROW_EXTERN_C();
@@ -329,7 +329,7 @@
     @param  pnAttrib [out] the resulting attributes, may be NULL.
     @return store_E_None upon success
  */
-storeError SAL_CALL store_attrib (
+storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_attrib (
 	storeFileHandle hFile,
 	rtl_uString    *pPath,
 	rtl_uString    *pName,
@@ -351,7 +351,7 @@
     @param  pDstName [in] the Destination name
     @return store_E_None upon success
  */
-storeError SAL_CALL store_link (
+storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_link (
 	storeFileHandle hFile,
 	rtl_uString *pSrcPath, rtl_uString *pSrcName,
 	rtl_uString *pDstPath, rtl_uString *pDstName
@@ -370,7 +370,7 @@
     @param  pDstName [in] the Destination name
     @return store_E_None upon success
  */
-storeError SAL_CALL store_symlink (
+storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_symlink (
 	storeFileHandle hFile,
 	rtl_uString *pSrcPath, rtl_uString *pSrcName,
 	rtl_uString *pDstPath, rtl_uString *pDstName
@@ -385,7 +385,7 @@
     @param  pDstName [in] the Destination name
     @return store_E_None upon success
  */
-storeError SAL_CALL store_rename (
+storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_rename (
 	storeFileHandle hFile,
 	rtl_uString *pSrcPath, rtl_uString *pSrcName,
 	rtl_uString *pDstPath, rtl_uString *pDstName
@@ -398,7 +398,7 @@
     @param  pName [in] the entry name
     @return store_E_None upon success
  */
-storeError SAL_CALL store_remove (
+storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_remove (
 	storeFileHandle hFile,
 	rtl_uString    *pPath,
 	rtl_uString    *pName
--- ./registry/inc/registry/writer.h.opt	2005-09-09 05:14:13.000000000 +0000
+++ ./registry/inc/registry/writer.h	2005-10-31 16:29:51.000000000 +0000
@@ -84,7 +84,7 @@
     rtl_uString const * fileName, RTTypeClass typeClass, sal_Bool published,
     rtl_uString const * typeName, sal_uInt16 superTypeCount,
     sal_uInt16 fieldCount, sal_uInt16 methodCount, sal_uInt16 referenceCount)
-    SAL_THROW_EXTERN_C();
+    SAL_THROW_EXTERN_C() SAL_DLLPUBLIC_EXPORT;
 
 /**
    Destroys a type writer.
@@ -94,7 +94,7 @@
 
    @since UDK 3.2.0
  */
-void SAL_CALL typereg_writer_destroy(void * handle) SAL_THROW_EXTERN_C();
+void SAL_CALL SAL_DLLPUBLIC_EXPORT typereg_writer_destroy(void * handle) SAL_THROW_EXTERN_C();
 
 /**
    Sets the type name of a super type of a type writer.
@@ -111,7 +111,7 @@
 
    @since UDK 3.2.0
  */
-sal_Bool SAL_CALL typereg_writer_setSuperTypeName(
+sal_Bool SAL_CALL SAL_DLLPUBLIC_EXPORT typereg_writer_setSuperTypeName(
     void * handle, sal_uInt16 index, rtl_uString const * typeName)
         SAL_THROW_EXTERN_C();
 
@@ -141,7 +141,7 @@
 
    @since UDK 3.2.0
  */
-sal_Bool SAL_CALL typereg_writer_setFieldData(
+sal_Bool SAL_CALL SAL_DLLPUBLIC_EXPORT typereg_writer_setFieldData(
     void * handle, sal_uInt16 index, rtl_uString const * documentation,
     rtl_uString const * fileName, RTFieldAccess flags, rtl_uString const * name,
     rtl_uString const * typeName, RTValueType valueType,
@@ -172,7 +172,7 @@
 
    @since UDK 3.2.0
  */
-sal_Bool SAL_CALL typereg_writer_setMethodData(
+sal_Bool SAL_CALL SAL_DLLPUBLIC_EXPORT typereg_writer_setMethodData(
     void * handle, sal_uInt16 index, rtl_uString const * documentation,
     RTMethodMode flags, rtl_uString const * name,
     rtl_uString const * returnTypeName, sal_uInt16 parameterCount,
@@ -201,7 +201,7 @@
 
    @since UDK 3.2.0
  */
-sal_Bool SAL_CALL typereg_writer_setMethodParameterData(
+sal_Bool SAL_CALL SAL_DLLPUBLIC_EXPORT typereg_writer_setMethodParameterData(
     void * handle, sal_uInt16 methodIndex, sal_uInt16 parameterIndex,
     RTParamMode flags, rtl_uString const * name, rtl_uString const * typeName)
     SAL_THROW_EXTERN_C();
@@ -224,7 +224,7 @@
 
    @since UDK 3.2.0
  */
-sal_Bool SAL_CALL typereg_writer_setMethodExceptionTypeName(
+sal_Bool SAL_CALL SAL_DLLPUBLIC_EXPORT typereg_writer_setMethodExceptionTypeName(
     void * handle, sal_uInt16 methodIndex, sal_uInt16 exceptionIndex,
     rtl_uString const * typeName)
     SAL_THROW_EXTERN_C();
@@ -250,7 +250,7 @@
 
    @since UDK 3.2.0
  */
-sal_Bool SAL_CALL typereg_writer_setReferenceData(
+sal_Bool SAL_CALL SAL_DLLPUBLIC_EXPORT typereg_writer_setReferenceData(
     void * handle, sal_uInt16 index, rtl_uString const * documentation,
     RTReferenceType sort, RTFieldAccess flags, rtl_uString const * typeName)
     SAL_THROW_EXTERN_C();
@@ -268,7 +268,7 @@
    and <code>size</code> is not modified
  */
 void const * SAL_CALL typereg_writer_getBlob(void * handle, sal_uInt32 * size)
-    SAL_THROW_EXTERN_C();
+    SAL_THROW_EXTERN_C() SAL_DLLPUBLIC_EXPORT;
 
 #ifdef __cplusplus
 }
--- ./registry/inc/registry/registry.h.opt	2005-09-09 05:12:56.000000000 +0000
+++ ./registry/inc/registry/registry.h	2005-10-31 16:29:51.000000000 +0000
@@ -60,7 +60,7 @@
                      reg_closeKey. If the function fails, phNewKey is NULL.
 	@return	REG_NO_ERROR if succeeds else an error code. 
 */
-RegError REGISTRY_CALLTYPE reg_createKey(RegKeyHandle hKey, 
+RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_createKey(RegKeyHandle hKey, 
 										 rtl_uString* keyName, 
 										 RegKeyHandle* phNewKey);
 
@@ -75,7 +75,7 @@
                      reg_closeKey. If the function fails, phNewKey is NULL.
 	@return	REG_NO_ERROR if succeeds else an error code. 
 */
-RegError REGISTRY_CALLTYPE reg_openKey(RegKeyHandle hKey, 
+RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_openKey(RegKeyHandle hKey, 
 					  				   rtl_uString* keyName, 
 					  				   RegKeyHandle* phOpenKey);
 					  
@@ -93,7 +93,7 @@
 	@param	pnSubKeys specifies the length of the array (the number of open subkeys).
 	@return	REG_NO_ERROR if succeeds else an error code. 
 */
-RegError REGISTRY_CALLTYPE reg_openSubKeys(RegKeyHandle hKey, 
+RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_openSubKeys(RegKeyHandle hKey, 
 						  				   rtl_uString* keyName, 
 						  				   RegKeyHandle** pphSubKeys, 
 						  				   sal_uInt32* pnSubKeys);
@@ -106,7 +106,7 @@
 	@param	nSubKeys specifies the length of the array (the number of subkeys to closed).
 	@return	REG_NO_ERROR if succeeds else an error code. 
 */
-RegError REGISTRY_CALLTYPE reg_closeSubKeys(RegKeyHandle* phSubKeys, 
+RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_closeSubKeys(RegKeyHandle* phSubKeys, 
 						   					sal_uInt32 nSubKeys);
 
 
@@ -118,7 +118,7 @@
                     be deleted.
 	@return	REG_NO_ERROR if succeeds else an error code. 
 */
-RegError REGISTRY_CALLTYPE reg_deleteKey(RegKeyHandle hKey, 
+RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_deleteKey(RegKeyHandle hKey, 
 										 rtl_uString* keyName);
 
 
@@ -128,7 +128,7 @@
                  The memory of the variable specifying the key will be freed.
 	@return	REG_NO_ERROR if succeeds else an error code. 
 */
-RegError REGISTRY_CALLTYPE reg_closeKey(RegKeyHandle hKey);
+RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_closeKey(RegKeyHandle hKey);
 
 
 /**	This function returns the name of a key.
@@ -136,7 +136,7 @@
 	@param	hKey identifies a currently open key which name will be returned.
 	@param	pKeyName contains the keyname if succeeds else an empty string. 
 */
-const RegError REGISTRY_CALLTYPE reg_getKeyName(RegKeyHandle hKey, rtl_uString** pKeyName);
+const RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_getKeyName(RegKeyHandle hKey, rtl_uString** pKeyName);
 
 
 /**	This function sets a value of a key.
@@ -151,7 +151,7 @@
 	@param	valueSize specifies the size of pData in bytes
 	@return	REG_NO_ERROR if succeeds else an error code. 
 */
-RegError REGISTRY_CALLTYPE reg_setValue(RegKeyHandle hKey, 
+RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_setValue(RegKeyHandle hKey, 
 					   					rtl_uString* keyName, 
 					   					RegValueType valueType, 
 					   					RegValue pData, 
@@ -167,7 +167,7 @@
 	@param	len specifies the len of pValueList.
 	@return	REG_NO_ERROR if succeeds else an error code. 
 */
-RegError REGISTRY_CALLTYPE reg_setLongListValue(RegKeyHandle hKey, 
+RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_setLongListValue(RegKeyHandle hKey, 
 					   		 	  				rtl_uString* keyName, 
 			   			 		  				sal_Int32* pValueList, 
 			   			 		  				sal_uInt32 len);
@@ -182,7 +182,7 @@
 	@param	len specifies the len of pValueList.
 	@return	REG_NO_ERROR if succeeds else an error code. 
 */
-RegError REGISTRY_CALLTYPE reg_setStringListValue(RegKeyHandle hKey, 
+RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_setStringListValue(RegKeyHandle hKey, 
 					   		 	  			  	  rtl_uString* keyName, 
 			   			 		  			  	  sal_Char** pValueList, 
 			   			 		  			  	  sal_uInt32 len);
@@ -197,7 +197,7 @@
 	@param	len	specifies the len of pValueList.
 	@return	REG_NO_ERROR if succeeds else an error code. 
 */
-RegError REGISTRY_CALLTYPE reg_setUnicodeListValue(RegKeyHandle hKey, 
+RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_setUnicodeListValue(RegKeyHandle hKey, 
 					   		 	  			   	   rtl_uString* keyName, 
 			   			 		  			   	   sal_Unicode** pValueList, 
 			   			 		  			   	   sal_uInt32 len);
@@ -214,7 +214,7 @@
 	@param	pValueSize returns the size of the value in bytes
 	@return	REG_NO_ERROR if succeeds else an error code. 
 */
-RegError REGISTRY_CALLTYPE reg_getValueInfo(RegKeyHandle hKey, 
+RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_getValueInfo(RegKeyHandle hKey, 
 						   					rtl_uString* keyName, 
 						   					RegValueType* pValueType, 
 						   					sal_uInt32* pValueSize);
@@ -230,7 +230,7 @@
 	@param	pData points to an allocated memory block receiving the data of the value. 
 	@return	REG_NO_ERROR if succeeds else an error code. 
 */
-RegError REGISTRY_CALLTYPE reg_getValue(RegKeyHandle hKey, 
+RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_getValue(RegKeyHandle hKey, 
 					   					rtl_uString* keyName, 
 					   					RegValue pData);
 
@@ -244,7 +244,7 @@
 	@param	pLen returns the length of the value list.
 	@return	REG_NO_ERROR if succeeds else an error code. 
 */
-RegError REGISTRY_CALLTYPE reg_getLongListValue(RegKeyHandle hKey, 
+RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_getLongListValue(RegKeyHandle hKey, 
 					   		 	  				rtl_uString* keyName, 
 			   			 		  				sal_Int32** pValueList, 
 			   			 		  				sal_uInt32* pLen);
@@ -259,7 +259,7 @@
 	@param	pLen returns the length of the value list.
 	@return	REG_NO_ERROR if succeeds else an error code. 
 */
-RegError REGISTRY_CALLTYPE reg_getStringListValue(RegKeyHandle hKey, 
+RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_getStringListValue(RegKeyHandle hKey, 
 				   			  					  rtl_uString* keyName, 
 				   			  					  sal_Char*** pValueList,
 				   			  					  sal_uInt32* pLen);
@@ -274,7 +274,7 @@
 	@param	pLen returns the length of the value list.
 	@return	REG_NO_ERROR if succeeds else an error code. 
 */
-RegError REGISTRY_CALLTYPE reg_getUnicodeListValue(RegKeyHandle hKey, 
+RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_getUnicodeListValue(RegKeyHandle hKey, 
 					   		 	  				   rtl_uString* keyName, 
 			   			 		  				   sal_Unicode*** pValueList, 
 			   			 		  				   sal_uInt32* pLen);
@@ -287,7 +287,7 @@
 	@param	len specifies the length of the value list.
 	@return	REG_NO_ERROR if succeeds else an error code. 
 */
-RegError REGISTRY_CALLTYPE reg_freeValueList(RegValueType valueType, 
+RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_freeValueList(RegValueType valueType, 
 				   			  				 RegValue pValueList, 
 				   			  				 sal_uInt32 len);
 
@@ -304,7 +304,7 @@
                        link will be opened.
 	@return	REG_NO_ERROR if succeeds else an error code.    
 */
-RegError REGISTRY_CALLTYPE reg_createLink(RegKeyHandle hKey,
+RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_createLink(RegKeyHandle hKey,
 				  			   		      rtl_uString* linkName, 
 										  rtl_uString* linkTarget);
 
@@ -315,7 +315,7 @@
 	@param	linkName points to a null terminated string specifying the name of the link.
 	@return	REG_NO_ERROR if succeeds else an error code.    
 */
-RegError REGISTRY_CALLTYPE reg_deleteLink(RegKeyHandle hKey,
+RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_deleteLink(RegKeyHandle hKey,
 								  		  rtl_uString* linkName);
 
 /** This function returns the type of a key.
@@ -328,7 +328,7 @@
     @param  pKeyType returns the type of the key.   
 	@return	REG_NO_ERROR if succeeds else an error code.    
 */
-RegError REGISTRY_CALLTYPE reg_getKeyType(RegKeyHandle hKey,
+RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_getKeyType(RegKeyHandle hKey,
 										  rtl_uString* keyName,
 					   					  RegKeyType* pKeyType);
 
@@ -339,7 +339,7 @@
 	@param	pLinkTarget contains the linktarget if succeeds else an empty string.
 	@return	REG_NO_ERROR if succeeds else an error code.    
 */
-RegError REGISTRY_CALLTYPE reg_getLinkTarget(RegKeyHandle hKey,
+RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_getLinkTarget(RegKeyHandle hKey,
 											 rtl_uString* linkName,
 						  					 rtl_uString** pLinkTarget);
 
@@ -352,7 +352,7 @@
                     The name of hKey together with keyName will be resolved from links.
 	@return	REG_NO_ERROR if succeeds else an error code. 
  */
-RegError REGISTRY_CALLTYPE reg_getResolvedKeyName(RegKeyHandle hKey,
+RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_getResolvedKeyName(RegKeyHandle hKey,
 											  	  rtl_uString* keyName,
 											 	  sal_Bool firstLinkOnly,
 							  				  	  rtl_uString** pResolvedName);
@@ -369,7 +369,7 @@
 			            registry information.
 	@return	REG_NO_ERROR if succeeds else an error code. 
 */
-RegError REGISTRY_CALLTYPE reg_loadKey(RegKeyHandle hKey, 
+RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_loadKey(RegKeyHandle hKey, 
 					  				   rtl_uString* keyName, 
 					  				   rtl_uString* regFileName);
 
@@ -386,7 +386,7 @@
 			            registry information.
 	@return	REG_NO_ERROR if succeeds else an error code. 
 */
-RegError REGISTRY_CALLTYPE reg_saveKey(RegKeyHandle hKey, 
+RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_saveKey(RegKeyHandle hKey, 
 					  				   rtl_uString* keyName, 
 					  				   rtl_uString* regFileName);
 
@@ -406,7 +406,7 @@
 	@param	bReport if TRUE the function reports warnings on stdout if a key already exists. 
 	@return	REG_NO_ERROR if succeeds else an error code. 
 */
-RegError REGISTRY_CALLTYPE reg_mergeKey(RegKeyHandle hKey, 
+RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_mergeKey(RegKeyHandle hKey, 
 					   					rtl_uString* keyName, 
 					   					rtl_uString* regFileName,
 					   					sal_Bool bWarnings,
@@ -419,7 +419,7 @@
 	@param 	phRegistry points to a handle of the new registry if the function succeeds otherwise NULL.
 	@return	REG_NO_ERROR if succeeds else an error code. 
 */
-RegError REGISTRY_CALLTYPE reg_createRegistry(rtl_uString* registryName, 
+RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_createRegistry(rtl_uString* registryName, 
 							 				  RegHandle* phRegistry);
 
 
@@ -429,7 +429,7 @@
 	@param 	phRootKey points to a handle of the open root key if the function succeeds otherwise NULL.
 	@return	REG_NO_ERROR if succeeds else an error code. 
 */
-RegError REGISTRY_CALLTYPE reg_openRootKey(RegHandle hRegistry, 
+RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_openRootKey(RegHandle hRegistry, 
 						  				   RegKeyHandle* phRootKey);
 
 
@@ -439,7 +439,7 @@
 	@param  pName returns the name of the registry if the function succeeds otherwise an empty string. 
 	@return	REG_NO_ERROR if succeeds else an error code. 
 */
-const RegError REGISTRY_CALLTYPE reg_getName(RegHandle hRegistry, rtl_uString** pName);
+const RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_getName(RegHandle hRegistry, rtl_uString** pName);
 
 
 /**	This function returns the access mode of the registry.
@@ -447,7 +447,7 @@
 	@param	hReg identifies a currently open registry.
 	@return	TRUE if accessmode is read only else FALSE. 
 */
-sal_Bool REGISTRY_CALLTYPE reg_isReadOnly(RegHandle hReg);
+sal_Bool REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_isReadOnly(RegHandle hReg);
 
 
 /**	This function opens a registry with the specified name.
@@ -457,7 +457,7 @@
 	@param 	accessMode specifies the accessmode of the registry, REG_READONLY or REG_READWRITE.
 	@return	REG_NO_ERROR if succeeds else an error code. 
 */
-RegError REGISTRY_CALLTYPE reg_openRegistry(rtl_uString* registryName, 
+RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_openRegistry(rtl_uString* registryName, 
 						   					RegHandle* phRegistry,
 						   					RegAccessMode accessMode);
 
@@ -467,7 +467,7 @@
 	@param	hRegistry identifies a currently open registry which should be closed.
 	@return	REG_NO_ERROR if succeeds else an error code. 
 */
-RegError REGISTRY_CALLTYPE reg_closeRegistry(RegHandle hRegistry);
+RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_closeRegistry(RegHandle hRegistry);
 
 
 /**	This function destroys a registry.
@@ -477,7 +477,7 @@
                          name is NULL the registry itselfs will be destroyed.
 	@return	REG_NO_ERROR if succeeds else an error code. 
 */
-RegError REGISTRY_CALLTYPE reg_destroyRegistry(RegHandle hRegistry,
+RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_destroyRegistry(RegHandle hRegistry,
 											   rtl_uString* registryName);
 
 
@@ -488,7 +488,7 @@
 	@param	hKey identifies a currently open key which content will be reported.
 	@return	REG_NO_ERROR if succeeds else an error code. 
 */
-RegError REGISTRY_CALLTYPE reg_dumpRegistry(RegKeyHandle hKey);
+RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_dumpRegistry(RegKeyHandle hKey);
 
 #ifdef __cplusplus
 }
--- ./salhelper/inc/salhelper/dynload.hxx.opt	2005-09-08 16:58:03.000000000 +0000
+++ ./salhelper/inc/salhelper/dynload.hxx	2005-10-31 16:29:51.000000000 +0000
@@ -53,7 +53,7 @@
 
 /** The ORealDynamicLoader is an implementation helper class for the template loader ODynamicLoader.
  */   
-class ORealDynamicLoader
+class SAL_DLLPUBLIC_EXPORT ORealDynamicLoader
 {
 public:
     /** initializes the loader, loads the library and call the initialization fucntion.
--- ./berkeleydb/makefile.mk.opt	2005-09-07 22:05:58.000000000 +0000
+++ ./berkeleydb/makefile.mk	2005-10-31 16:29:51.000000000 +0000
@@ -69,8 +69,8 @@
 CONFIGURE_DIR=out
 #relative to CONFIGURE_DIR
 CONFIGURE_ACTION= \
-	setenv CFLAGS "$(ARCH_FLAGS)" && \
-	setenv CXXFLAGS "$(ARCH_FLAGS)" && \
+	setenv CFLAGS "$(CFLAGSCC)" && \
+	setenv CXXFLAGS "$(CFLAGSCXX) $(CFLAGSEXCEPTIONS)" && \
 	..$/dist$/configure
 CONFIGURE_FLAGS=--enable-cxx --enable-dynamic --enable-shared
 .IF "$(SOLAR_JAVA)"!=""
--- ./icu/makefile.mk.opt	2005-10-31 16:15:22.000000000 +0000
+++ ./icu/makefile.mk	2005-10-31 16:31:11.000000000 +0000
@@ -74,4 +74,4 @@
 
-icu_CFLAGS+=-O $(ARCH_FLAGS)
+icu_CFLAGS+=$(CFLAGSOPT) $(ARCH_FLAGS)
-icu_CXXFLAGS+=-O $(ARCH_FLAGS)
+icu_CXXFLAGS+=$(CFLAGSOPT) $(ARCH_FLAGS)
 
