# Palm OSŪ Developer Suite

IMPORTANT: Read Before Using the Accompanying Software

IMPORTANT: Read Below Carefully if:

- you already have a Cygwin installation, or
- you intend to use 1.0.0 or 1.1.0 projects, or
- you are attempting to use the Eclipse Update Manager feature for updating Palm OS Developer Suite

## Table of Contents

- Enhancements and Fixes -- What's New
- About Palm OS Developer Suite
- Installation Instructions
- Upgrading Instructions
- Importing and Upgrading Projects
- Incorporating User Defined Makefiles
- Uninstalling Palm OS Developer Suite
- Restrictions
- Known Issues
- Other Information

## Enhancements and Fixes -- What's New

Welcome to the 1.2.0 release of Palm OS Developer Suite. Palm OS Developer Suite is based on Eclipse, a widely-accepted open-source IDE. The 1.2.0 release includes the following:

Environment:

- Underlying Eclipse platform based on Eclipse 3.0.1 and CDT 2.0.2
- Palm OS project creation using user managed makefiles (i.e. Standard Make)
- Palm OS project creation using system managed makefiles (i.e. Managed Make)
- Global tools preferences that are used to initialize project tool options
- Support for upgrading Palm OS Developer Suite through the Eclipse Update Manager facility

Development Support:

- Palm OS SDK 6.1 targeting Palm OS Cobalt devices
- Palm OS SDK 5.4 targeting Palm OS 3.x, Palm OS 4.x, and Palm OS Garnet devices
- Compilation and creation of 68K applications, shared libraries, and static libraries
- Compilation and creation of 68K/PNO applications and static libraries
- Compilation and creation of Protein (ARM-native) applications, shared libraries and static libraries, for execution on Palm OS Cobalt devices and on Palm OS Cobalt Simulator
- Inclusion of and support for STLport standard C++ library
- Integrated debugging of 68K applications from within Palm OS Developer Suite
- Integrated debugging of 68K/PNO applications from within Palm OS Developer Suite (68K code segments only)
- Integrated debugging of Protein applications from within Palm OS Developer Suite
- Improved PalmSource Installer package generation capabilities

### Changes from Palm OS Developer Suite 1.1.0

This release of Palm OS Developer Suite includes the following new features:

- Support for upgrading Palm OS Developer Suite through the Eclipse Update Manager facility

## About Palm OS Developer Suite

Palm OS Developer Suite uses Eclipse as its base IDE. Eclipse version 3.0.1 and the C Development Toolkit feature (CDT) version 2.0.2 are the required minimum Eclipse base. JRE 1.4 or later is required but is already included with this product so an additional download of it is not needed. Additionally, Palm OS Developer Suite uses Cygwin as its C compilation environment.

## Installation Instructions

To perform a complete installation of Palm OS Developer Suite, which includes all necessary components (such as Eclipse, Cygwin, prc-tools, and Palm OS SDKs and tools), run the Palm OS Developer Suite Installer.

The complete installation assumes that you do not have Cygwin installed. The complete installation installs an Eclipse instance complete with Palm OS Developer Suite specific plugins, a subset of Cygwin, prc-tools, Palm OS 5 SDK, and Palm OS Cobalt SDK, and tools modified for use with prc-tools and Eclipse, in a subfolder of your root drive:

      <root drive>:\Program Files\PalmSource\Palm OS Developer Suite

### Warning - Cygwin Installations

The default installation installs a Palm OS Developer Suite provided version of Cygwin. The custom installation allows you to select which features are installed and the locations of installed features. Most users without Cygwin previously installed should use the default installation method. Use the custom installation method if you already have Cygwin and prc-tools installed on your target machine. It is highly recommended to take the defaults in all other cases in the custom installation method for packages to install and paths for installation.

NOTE: If you choose to install the Palm OS Developer Suite provided Cygwin, you should remove all previous Cygwin installations since Cygwin does not support multiple installations of that product to coexist on one machine. Palm OS Developer Suite installer modifies the Cygwin registry settings as part of the installation process and therefore may negatively affect any previous installations.

### System Requirements

Palm OS Developer Suite requires the following:

- Operating System: Windows 2000 or Windows XP
- Processor: At minimum an Intel Pentium III processor at 600 MHz is required (Pentium 4 processor at 1.4 GHz or higher is recommended)
- Memory: 512 MB RAM required
- Hard Disk Space: 800 MB required

Palm OS Developer Suite also uses Cygwin and prc-tools as one of its underlying tool chains. A complete installation of Palm OS Developer Suite includes a Cygwin package with the following list of packages and versions:

- _update-info-dir 00227-1
- ash 20040127-1
- base-files 2.6-1
- base-passwd 1.1-1
- bash 2.05b-16
- binutils 20040312-1
- bison 20030307-1
- bzip2 1.0.2-5
- ctags 5.5-4
- cygutils 1.2.5-1
- cygwin 1.5.10-3
- cygwin-doc 1.3-7
- diffutils 2.8.7-1
- editrights 1.01-1
- fileutils 4.1-2
- findutils 4.1.7-4
- flex 2.5.4a-3
- gawk 3.1.3-4
- gcc 3.3.1-3
- gcc-g++ 3.3.1-3
- gcc-mingw 20030911-4
- gcc-mingw-core 20031020-1
- gcc-mingw-g++ 20031020-1
- gdb 20030919-1
- gdbm 1.8.3-7
- grep 2.5-1
- groff 1.18.1-2
- gzip 1.3.5-1
- less 381-1
- libbz2_0 1.0.2-1
- libbz2_1 1.0.2-5
- libgdbm 1.8.0-5
- libgdbm-devel 1.8.3-7
- libgdbm3 1.8.3-3
- libgdbm4 1.8.3-7
- libgettextpo0 0.12.1-3
- libiconv2 1.9.1-3
- libintl1 0.10.40-1
- libintl2 0.12.1-3
- libncurses5 5.2-1
- libncurses6 5.2-8
- libncurses7 5.3-4
- libpcre 4.1-1
- libpcre0 4.5-1
- libpopt0 1.6.4-4
- libreadline4 4.1-2
- libreadline5 4.3-5
- login 1.9-7
- m4 1.4-1
- make 3.80-1
- man 1.5k-3
- mingw-runtime 3.3-1
- mktemp 1.5-3
- ncurses 5.3-4
- pcre 4.5-1
- pcre-doc 4.5-1
- pkgconfig 0.15.0-4
- prc-tools 2.3
- prc-tools-htmldocs 2.3
- readline 4.3-5
- sed 4.0.9-2
- sh-utils 2.0.15-4
- tar 1.13.25-5
- tcltk 20030901-1
- termcap 20021106-2
- terminfo 5.3_20030726-1
- texinfo 4.2-4
- textutils 2.0.21-1
- unzip 5.50-5
- w32api 2.5-1
- which 1.5-2
- zip 2.3-6
- zlib 1.2.1-1

Additionally, the Palm OS Developer Suite provided Cygwin installation includes the prc-tools 2.3 patch for multi-section debugging of 68K applications. This patch was created by Ton van Overbeek, a contributor to the prc-tools chain at SourceForge.net. The patch can be retrieved from http://www.v-overbeek.nl/msectgdb/ if you install your own Cygwin and prc-tools and need to patch your installation. Thanks to Ton for his work in getting this patch done.

If you have already installed Cygwin and want to keep using that, update your packages to include all of the above packages of at least the versions numbers indicated. For instructions on how to update Cygwin, go to http://www.cygwin.com. For instructions on how to update prc-tools go to http://prc-tools.sourceforge.net. After updating the Cygwin and prc-tools packages, choose the custom installation path in the Palm OS Developer Suite full installer and uncheck Cygwin in order to use your own Cygwin and not use the one provided by PalmSource.

### Web Updates through Eclipse Update Manager

This release supports the Eclipse Update Manager for automatically updating your Palm OS Developer Suite or Eclipse Platform using Palm OS Developer Suite updates. There is no additional configuration required in your Palm OS Developer Suite installation in order to find available updates from PalmSource. To look for updates, select from the menu Help > Software Updates > Find and Install... and follow the wizard.

NOTE: DO NOT apply any CDT updates provided by eclipse.org to your Palm OS Developer Suite instance through the Update Manager. The CDT requires patches from PalmSource in order to work within the Palm OS Developer Suite and updating the CDT features and plugins from eclipse.org will overwrite those required changes, thereby breaking your Palm OS Developer Suite instance.

NOTE: Once an update of Palm OS Developer Suite has been started, DO NOT cancel the operation; let it complete in its entirety. There is known bugs in the Eclipse 3.0.1 Update Manager feature that prevents a successful cancel of a partially completed update manager installation operation. This will be fixed in a future release when Palm OS Developer Suite includes Eclipse 3.1.

## Upgrading Instructions

Palm OS Developer Suite 1.2.0 does not support upgrading an existing earlier Palm OS Developer Suite version at this time. Rather, if you've already installed Palm OS Developer Suite 1.1.x or earlier you must first uninstall your previous installation. Your project data will be remain untouched on your system during the uninstall. You then can install Palm OS Developer Suite 1.2.0 in the same locations as you had previously chosen for the previous version. Your project data will remain in your workspace even though individual memorized workspace settings (such as global preferences and perspective modifications) may be modified or lost during the reinstallation process.

If you forget to uninstall an earlier installed version of Palm OS Developer Suite prior to running the Palm OS Developer Suite 1.2.0 installer, the installer will initiate an uninstall of the previous product version before installing the current version.

NOTE: If you did uninstall a previous version of Palm OS Developer Suite and then installed version 1.2.0 in the same directory as the previous installation or are using a PODS 1.0.0 workspace for the first time in version 1.2.0, you may receive an error dialog after restarting the IDE for the first time that states something similar to the following:

`Unable to restore perspective: Workspace - Palm OS C/C++ Development Perspective
Unable to create editor: Welcome.
Could not create view: org.eclipse.cdt.ui.BuildConsoleView
Could not find view: org.eclipse.cdt.ui.BuildConsoleView`

This is due to settings in your workspace that reference IDE components that have been updated and/or replaced in version 1.2.0 (or more precisely in CDT 2.0 that is included by Palm OS Developer Suite 1.2.0). To correct the error, select Window > Reset Perspective while in the perspective that the error references.

## Importing and Upgrading Projects

### Importing non-Palm OS Developer Suite Projects

This release of Palm OS Developer Suite does not have any import wizards that automatically create new Palm OS Developer Suite projects from those existing Palm OS projects from other third party vendors. Included in this section is the recommended methods for importing the contents of your existing projects into Palm OS Developer Suite project.

#### prc-tools Make Projects

68K application projects using prc-tools 2.3 should be able to be imported into a 68K standard make project and compile without change. This is assuming that the prc-tools projects contains a makefile in its root directory and the tools invoked are in the PATH environment variable. Some modifications may be required to update the tools paths in the makefile or the make targets. To import a prc-tools 68K make project, do the following:

1. Create a new Palm OS Development Standard Make 68K C/C++ project of output type Application and using the "Makefile Import Project" code template.
2. Select File > Import... > File System and select the complete contents of your existing prc-tools make project. This will copy those contents into the Palm OS Developer Suite standard make project directory in your workspace.

Invoking build on the project will then build the "all" target in your makefile. For 68K shared libraries or static libraries, perform similar actions as above, except create a new Palm OS Development Standard Make 68K C/C++ project with the output type of Shared Library or Static Library as appropriate.

If you are building PNO applications with prc-tools, note that the default tool chain that Palm OS Developer Suite provides for compiling PNO segments is different from that of prc-tools. Palm OS Developer Suite by default uses the PalmSource C/C++ compiler to compile PNO segments for a device target while prc-tools 2.3 utilizes arm-palmos-gcc. Depending on your preferences you should either a) add the arm-palmos-gcc toolset to your Cygwin deployment to keep your makefiles the same, or b) modify your makefiles to utilizes the PalmSource C/C++ compiler. To utilize the PalmSource C/C++ compiler, create a sample project using a wizard provided code template and use those makefiles as an example for modification of your makefiles.

#### Other Third Party IDE Projects

For projects from other IDEs, the steps to take are:

1. Create an appropriate Palm OS Developer Suite project for your target application (e.g. 68K or PNO project). Create the project using the "Source File Import Project" code template. You may create either a standard make project or a managed make project, depending on whether you want to manually maintain a makefile or manage your project through a project properties interface.
2. Next you must import all source files, header files, resource files into the newly created Palm OS Developer Suite project. Import the files using File > Import... > File System. Importing the files will copy them into the Palm OS Developer Suite project.
3. If you have a standard make project, you then must add the source and resource files into the makefile definition in order for the makefile to use those sources in a build. Managed make projects automatically compile all sources and resources in any subdirectory of a managed make project so there's no need to explicitly tell the project about the files.
4. Finally you must manually apply any compiler/linker/build tools options from the existing project into the appropriate places in the Palm OS Developer Suite project. For standard make projects, this means update the makefile and possibly the makefile-engine.mk. For managed make projects, this means accessing the project's properties by selecting "C/C++ Build" and modifying the tools options there.

### Upgrading 1.0.0 Palm OS Developer Suite Projects

Projects created in Palm OS Developer Suite 1.0.0 need to be upgraded in 1.2.0 in order for their properties to be accessed properly. To do so, first import the projects into Palm OS Developer Suite 1.2.0 if they are not already in your workspace. you will then be prompted that a restart of the IDE is required if the projects are not version 1.2.0 projects. Then you must RESTART Palm OS Developer Suite 1.2.0. When restarted, the IDE will detect that there are projects that have not been upgraded to 1.2.0 and show a dialog asking if the projects should be upgraded. Please allow it to do the upgrade so you can access your managed make projects properties properly. Note that there may be a slight delay of a few seconds before the IDE detects the projects to upgrade; be patient, it'll find them.

If you are upgrading standard make projects from 1.0.0, please note the following changes made in PODS 1.2.0 that are not automatically applied to your makefiles during the upgrade. The upgrade process does not modify your standard make makefiles, so you'd have to make any of these changes manually if you need them:

- Palm OS Developer Suite 1.0.0 projects that build applications targeting a simulator are missing a link option. '--entry 0' is required for the gcc command that creates the PNO DLL. You can add this option to the ADDITIONAL_PNO_SIM_LINKER_FLAGS definition in the makefile if your makefile still contains that definition.

NOTE: If you've changed the installation locations of any component of Palm OS Developer Suite (such as the SDKs or Cygwin) in installing the latest version when compared to the previous Palm OS Developer Suite, you may have compilation errors due to changed dependency locations. This is a known issue in CDT. To rectify this, you can do either of the following:

- Delete the .index files from workspace/.metadata/.plugins/org.eclipse.cdt.core. These files will be regenerated during the next rebuild of your projects.
- Edit any source file in your project and then rebuild the project.

### Upgrading 1.1.x Palm OS Developer Suite Projects

Currently, there are no explicit steps required in order to upgrade Palm OS Developer Suite 1.1.x projects for 1.2.0. These projects will work unchanged in this release.

### Unsupported Palm OS Developer Suite Project Versions

The following Palm OS Developers Suite project versions are not supported "as-is" in the current release of Palm OS Developer Suite:

- 0.x.x Technology Preview projects
- 1.0.0 Technology Preview or Beta release projects

The only supported method for updating the Palm OS Developer Suite projects listed above is to manually create new projects and incorporate the sources from the unsupported projects into the new projects. To do so, do the following:

1. Create a new project in the current release of Palm OS Developer Suite corresponding to the target API and project type (e.g. 68K, PNO, or Protein and application, shared library, static library, or database). Choose the code generation template of "Source File Import Project" to get all project specific files except for the actual source files.
2. Select the project and then select from the menu File > Import > File System . That will bring you to a dialog that allows you to select all of the source to copy into your project's workspace.
3. After including all of your source, if you've created a standard make project you have to modify the makefile so that the SOURCES, RESOURCES, and PNO information matches the sources you are including.

## Incorporating User Defined Makefiles

Standard make projects in Palm OS Developer Suite uses user-controlled makefiles for its builds. Palm OS Developer Suite essentially just invokes 'make' from a command line to build the standard make projects. In the standard make project wizards, Palm OS Developer Suite provides a generic set of makefiles that the user can modify and tailor for their specific application build.

The user also has the option of not using the Palm OS Developer Suite supplied makefiles and providing their own. This can be done, but the user must modify their makefiles to meet certain requirements that Palm OS Developer Suite defines for makefiles. Palm OS Developer Suite requires some variables to be defined in the file 'makefile' so that Palm OS Developer Suite can accurately derive information about the build for debugging and running the result. A complete list of the variables required can be found in the Introduction to Palm OS Developer Suite book in the HTML help contents within Palm OS Developer Suite.

## Uninstalling Palm OS Developer Suite

To uninstall Palm OS Developer Suite, follow the steps below:

1. Go to Windows Start Menu > Settings > Control Panel > Add/Remove Programs
2. Select the following from the list "Currently Installed Programs" and click on Change/Remove button for each to uninstall each component:

   > - Palm OS Developer Suite

3. Other components such as any updated plugins and features can be deleted manually.

NOTE: If you chose to install the included Palm OS version of Cygwin as part of the Palm OS Developer Suite, the uninstall feature may leave the Cygwin directory behind after uninstallation due to the creation of files during the use of Cygwin. You can safely remove this directory after uninstallation.

## Restrictions

This section details the restrictions or limitations you should be aware of when using Palm OS Developer Suite.

### Install/Uninstall/Update

- If you've changed the installation locations of any component of Palm OS Developer Suite in installing the latest version when compared to the previous Palm OS Developer Suite, you may have compilation errors due to changed dependency locations. This is a known issue in CDT. To rectify this, you can do either of the following:

  - Delete the .index files from workspace/.metadata/.plugins/org.eclipse.cdt.core. These files will be regenerated during the next rebuild of your projects.
  - Edit any source file in your project and then rebuild the project.
- Disabling a feature in Palm OS Developer Suite will not disable non-Eclipse components corresponding to the feature disabled. For example, disabling the PalmSource provided Cygwin/PRC-Tools feature will not "disable" the cygwin installation on the system. Disabling is an Eclipse-centric concept and does not have equivalents in the non-Eclipse components managed by the Eclipse features.
- Uninstalling or disabling a feature in Eclipse will not automatically enable any previous version of that feature; the IDE doesn't know if your intent is to keep the feature disabled and not use it or to replace its version. You must specifically enable another version of the feature or use "Replace with another version" in the Manage Configuration dialog.

### Project Management

- Eclipse prevents any project from being created that uses part of or the complete path to your workspace (e.g. you cannot create a project in the directory `C:\Program Files` if your workspace is at `C:\Program Files\Palm OS Developer Suite\workspace`). This is a known restriction since all files and folders underneath a given project is considered part of the project. Therefore in the example listed above, all folders under a project located at `C:\Program Files` would be part of that project, including the workspace itself at `C:\Program Files\Palm OS Developer Suite\workspace`. This would result in a circular reference since the workspace references the project. To avoid this Eclipse prevents the project from being created by displaying the following error:
  `Project cannot be created
  Reason:
  Invalid project description.
  C:/Program Files and C:/Program Files/Palm OS Developer Suite/workspace overlap.`
- In Eclipse, all content in a project's directory and subdirectories are automatically considered part of that project's contents. Because of this, you should take care in creating projects in existing directories. If you create a project in an existing directory that contains lots of content, Eclipse will attempt to include all of that directory's content into the project, resulting in potentially long delays as Eclipse reads in and parses all files and directories underneath the project's directory. To remedy this, try to create projects in new empty directories or directories with a small number of files/directories.

### 68K Development

- Importing existing files
  It is assumed that all files imported into Palm OS Developer Suite have the proper line endings in them for the platform. Since there is no specific Palm OS project import wizard in this release, there is nothing to perform file line ending conversions on files included in a project. If there are line endings in a file that are not standard for the platform, the compilation of those files may fail. It is the responsibility of the developer to ensure that all files imported already have line endings for the native platform.
- In this release building multi-section applications using a 68K managed make project is supported but the user must manually create the .def file that defines the sections. Sample `Sections.def` and `Sections.h` files can be generated and examined from any of the 68K standard make code templates.
- In this release, shared library development using a 68K managed make project requires the prc-tools shared library definition file to be named `SharedLib.def`. This file is input to the tool `m68k-palmos-stubgen`. The toolset specifically looks for a file by that name in the root directory of the managed make shared library project. If one is not present, the 68K managed make project will fail to construct the shared library properly.
- In this release, multi-segment development in 68K applications using a 68K managed make project require the sections definition file to be named `Sections.def`, as noted previously in this readme.

### PNO Development

- In this release, 68K PNO managed make projects require specific directory structures and file and function naming in order for the PNO to be properly constructed, as noted by the following:
  - PNO code must reside under a subdirectory of `"NativeCode"` in the PNO managed make project. The subdirectory name must be of the format `'LLLLxxxx'` where LLLL is a four-character resource ID (PalmSource recommends always using 'ARMC') and xxxx is a hex resource id you wish to use for the subsequent code resource. The directory name matches the resource that will be created. All source code within that subdirectory will be compiled and linked into a code resource for that directory. For example, all code in the directory `"NativeCode/ARMC1000"` will be compiled into a resource ARMC1000.bin and merged into the final PRC.
  - Multiple PNO resources can be created by just having separate directories. For example, if there exist code in `"NativeCode/ARMC1000"` and `"NativeCode/ARMC1001"`, then two PNO resources will be created, ARMC1000.bin and ARMC1001.bin, and merged into the PRC.
  - There must be a source file in the PNO resource directory, inside of which is the definition of the PNO entry function call of the signature `'unsigned long PNOMain(const void*, void*, Call68KFunType*)'`. For a description of the parameters for this function see the function `NativeFuncType` in the Palm OS header `PceNativeCall.h` or consult the PNO development documentation. The toolset currently hardcodes the entry function name to PNOMain.
- If the user specifies the -S option for a PNO device project build, assembly code will be produced instead of an object file as expected. The assembly code file generation is to be used for visual verification of the code generated and general debugging of problems only and is not intended to be part of the build process. Therefore, specifying the -S prevents the object file from being produced so when this option is enabled your projects won't build successfully. To produce your target's output successfully, disable the -S option and rebuild.

### Protein Development

- In this release, Protein managed make projects for application and shared library targets require specific files in order for the project output to be properly constructed, as noted by the following:
  - A file named "`app.sld`" is required for applications and shared libraries in order to build the output. All code templates already provide this, but if you use an empty project, you'll have to provide one. The contents for an application target should be:
    `REVISION 1 ; your revision number
    RESOURCEID 0
    ENTRY _PalmUIAppStartup
    `
    While the contents for a shared library target should be:
    `REVISION 1 ; your revision number
    RESOURCEID 0
    ; Shared Libraries must have one entry
    ENTRY BasicLibMain ; your main object file
    ; Shared Library Exports List - Be sure to explicitly add the exports into here
    BasicLibFn ; your exported function`
  - A file named "`gcc_link.def`" is required in order to build a simulator target for your project. The contents for an application target should be:
    `EXPORTS
    _PalmUIAppStartup @1
    SysGetRefNum @2
    __ExportDispatchTable @3
    __GetRefNum @4
    __SetPreloadedDispatchTable @5
    __SetRefNum @6
    `
    While the contents for a shared library target should be:
    `EXPORTS
    BasicLibMain @1
    SysGetRefNum @2
    __ExportDispatchTable @3
    __GetRefNum @4
    __SetPreloadedDispatchTable @5
    __SetRefNum @6
    `
- If the user specifies the -S option for a Protein project build, assembly code will be produced instead of an object file as expected. The assembly code file generation is to be used for visual verification of the code generated and general debugging of problems only and is not intended to be part of the build process. Therefore, specifying the -S prevents the object file from being produced so when this option is enabled your projects won't build successfully. To produce your target's output successfully, disable the -S option and rebuild.
- The GCC compiler doesn't guarantee thread safety for static object construction so it is recommended to avoid that scenario.
- Inclusion of the header <limits> will produce a warning #68, indicating a problem with the `WCHAR_MIN` definition. The warning is harmless. However our supported compilers and SDK environments do not fully agree on the definition and limits for the `wchar_t` type. While we intend for `wchar_t` to be an unsigned 32 bit integer type for Protein development, this currently is not reliable and the `WCHAR_MIN/WCHAR_MAX` definitions may not agree with the `wchar_t` type. We recommend that `wchar_t`, `WCHAR_MIN`, `WCHAR_MAX`, and `std::numeric_limits<WCHAR_T>` not be used. [BUG70540]

### PalmSource Installer Package Export Wizard

- In this release, the PalmSource Installer Package Export wizard will create an initial PSML configuration file if one is not present in a project when the wizard is finished using the Finish button. This is the only automated way to create the configuration file. You may manually provide a PSML configuration file first if desired; see PalmSource Installer documentation at www.palmsource.com for details.
- The initial PSML configuration file created by the wizard does not contain any variant or product definitions. It also is set by default to include the project's build target from a release configuration. After file creation, you are encouraged to edit this file manually to accommodate your needs and desires. After creation, the file will not be modified by the Export wizard in this release so your changes are safe to make.
- In this release, the PalmSource Installer Package Export wizard will only complete successfully if the configuration file is named `package.psml` and is located in the selected project's root directory.
- In this release, the PalmSource Installer Package Export wizard will only complete successfully if you've previously completed a successful build of the project's target specified in the PSML configuration file. The wizard will not automatically build the target for you in this release.

### Language Support

- Palm OS Developer Suite does not support a full standard C library for 68K or PNO development. For example, the function `printf(const char*)` from the header stdio.h is not supported. For Protein development, a subset of standard C library functions is supported.
- Palm OS Protein C++ Compiler is a strict C99 compiler. As a result, deprecated features of the C89 language are not supported, including the following:
  - Use of implicit `int` in declarations
  - Use of implicit function declarations
  - Not returning data when a function is defined to have a return
  - Returning data when a function is not defined to have a return
- Palm OS Developer Suite incorporates the prc-tools 68K Palm OS development tool-chain along with the Palm OS 5.4 SDK. This environment provides support for all documented Palm OS SDK functionality. At this time, a full ANSI-compliant C library is not supported for 68K development as noted above. Many C library functions have direct equivalents in the Palm OS SDK. Palm OS Developer Suite provides the STLport Standard C++ Library for developers to use with 68K and Protein applications. However, not all functionality is available for 68K development, due to the lack of a C library. In general, the STL container classes and algorithms should be usable from 68K code: `<vector>`,`<string>`, `<algorithm>`, etc.

### Samples

- All code templates generated by the wizards that contain resource definitions by default assume a locale of 'enUS'. If you specify a locale other than enUS in the global Palm OS Development preferences, the wizard code template resources will not compile. If you wish to specify a different locale then you must modify the resource definition files in your projects to match the desired locale.
- Importing a sample SDK project does not produce a copy of the sample and any changes made to the sample code affects the original copy of the code. Create a copy of the SDK sample prior to importing if you desire to save an original copy.
- The paths of PalmOSTools and cygwin/bin folders are not inserted into the PATH environment variable which means you will not be able to build the samples from the command line right after a fresh install without adding the paths manually yourself.
- You can also use the command line to build the sample applications from the SDK. In order to build the PIM apps on command line, you have to invoke the make utility with "-f" parameter by passing the name of the makefile which not only builds the target PIM app but also builds all the dependent libraries e.g. to build the Address PIM app you have to call "make -f makeaddr" at command prompt, similarly for Datebook call "make -f makedate", for Memo call "make -f makememo" and finally for Todo call "make -f maketodo" at command prompt.

### Debugging

- Setting a breakpoint in a file only sets the breakpoint for the project from which you opened the file editor. This behavior differs from IDEs like CodeWarrior where setting a breakpoint in a source file shared among multiple projects causes the breakpoint to be active in all of the projects.

### General

- It is possible to use the DOS command line to perform scripted builds of Palm OS Developer Suite projects. In order to do so, you must first add the bin directory of your Cygwin installation to your environment path so that the makefiles will be able to execute properly (they assume that Cygwin's bin directory is in the path). You can then use "make" on the makefile in the desired projects.
- Standard make projects require a build before the content assist, open headers, and open declarations features can be invoked successfully. This is because much of the information required by those features is contained in the makefile itself and a build of the project is needed to parse that information.
- Windows XP Service Pack 2 implements a more restrictive security model that attempts to block network port access. This may interfere with use of the Palm OS simulators and emulators during running and debugging since network port access is the mechanism used to communicate between the simulator/emulator and Palm OS Developer Suite. If prompted whether to allow a Palm OS Simulator or emulator to access a TCP/IP port, you must respond yes in order to successfully run or debug your applications using those targets. Consult the Microsoft Windows XP SP Firewall documentation for more information on how to allow create exceptions to allow connections from these applications if you still have difficulties.
- There are cases during an update to Palm OS Developer Suite where dialogs requiring responses may sometimes not be in focus, being obscured or hidden by other windows. An example of such is changing the focus window in Windows 2000 and XP via switching applications or minimizing/maximizing windows may sometimes hide or obscure dialogs that require responses. For Palm OS Developer Suite, this may result is a seemingly unresponsive application when in fact it's waiting for the user to make a selection in a dialog not in focus. To get focus back to the dialog and continue with the application, you can try the following:
  - Select the Palm OS Developer Suite application from the task bar usually located at the bottom of the display. This should bring it in focus.
  - If that doesn't work, bring up the Task Manager application via ctrl-alt-delete and then selecting Task Manager, and then selecting the Applications tab. On that tab, find and highlight Palm OS Developer Suite and then select the Switch To button to get focus on the application.

## Known Issues

This sections lists significant issues, defects, and bugs in Palm OS Developer Suite known at the time of the release of this version of the product.

### Install/Uninstall/Update

- Although the "Complete" install allows you to specify a drive letter other than "C:", the installer currently checks for space on the C: drive by default. If you do not have sufficient space on your C: drive, the "Complete" install does not continue. To install on a drive other than the C: drive, select the "Custom" install.
- If you have the latest version of Cygwin installed on your system and then attempt to install the Palm OS provided version of Cygwin, the Palm OS Developer Suite Installer may crash. However, you'll also see a dialog noting that the latest version of Cygwin conflicts with the attempts to install the Palm OS provided version. To get Palm OS Developer Suite installed properly, remove any references to your other Cygwin installation from the PATH. If that doesn't work, uninstall your other Cygwin installation since you are installating the Palm OS provided version and two Cygwin versions cannot coexist on a machine anyway. [BUG70689]
- You must uninstall Palm OS Developer Suite logged in either as an administrator or using the same user which was used during the installation. If you do not use the same user or an administrator, then the uninstallation may not be able to remove some Cygwin files due to permission restrictions. [BUG66656]
- If one disables a feature and then re-enables it in the Manage Configuration dialog, the enable may take a long time with no notification (e.g. up to 2 minutes in the case of disabling/enabling the PalmSource provided Cygwin feature). During this time, the Manage Configuration dialog will be unresponsive. The delay is because the system is reinstalling necessary files outside of Palm OS Developer Suite. The user should be patient and wait for the reinstallation to complete and the Manage Configuration dialog to become responsive again. [BUG82517]
- Uninstalling a feature installed via the Update Manager may not remove all non-Eclipse code installed by the feature. For example, if one installs the Palm OS Cygwin feature via the Update Manager and then uninstalls it, the Cygwin files and directories will not be removed. The user is encouraged to delete any unnecessary files on their system after uninstalling feature updates if the files are no longer desired. [BUG82519]
- Canceling an update operation in the Eclipse Update Manager feature may result in an incomplete installation of Palm OS Developer Suite or whatever feature you are updating. This is due to known issues with the Eclipse 3.0.1 Update Manager feature. The workaround is to restart the IDE and retry but there are cases where that may not work as well. In that case, reinstalling Palm OS Developer Suite is the only recourse. Therefore, it is HIGHLY recommended not to cancel any Update Manager installation in progress once started. [BUG85911]
- When reverting or uninstalling Palm OS Developer Suite features, you should ensure that no files being affected by the install are referenced while the configuration action is taking place. For example, make sure all simulator instances are shut down, make sure all Cygwin BASH shells are closed, and make sure no directories that are related to Palm OS Developer Suite components are being referenced. Windows-based systems do not handle multiple simultaneous references to system resources very well and that could interfere with the configuration action preventing its successful result. If you have resources being referenced, it may prevent the revert or uninstall from successful completion and the only recourse is to re-install Palm OS Developer Suite. [BUG85857]
- If you upgrade the Eclipse feature from 3.0.1 to 3.0.2 and then revert back to 3.0.1, an existing bug in the Eclipse core code will render Palm OS Developer Suite unusable (i.e. the IDE will not start). Therefore we recommend that if you upgrade to Eclipse 3.0.2 you should NOT revert back to Eclipse 3.0.2. The workaround if you want to go back is to uninstall and then reinstall Palm OS Developer Suite. [BUG86248]

### Cygwin and prc-tools

- If you previously had a Cygwin installed on your system for all users and then uninstall it, registry entries are left over and not completely deleted. If you then install Cygwin again and this time select a different root directory and select "Install for just me", the palmdev-prep command may not be able to be invoked properly and your 68K development environment will not be successfully installed. This scenario may also occur if you are upgrading your Cygwin installation through its setup.exe and change the "Install for" selection and the Cygwin root directory. To correct this particular scenario, prior to your reinstallation of Cygwin delete the Cygnus Solutions keys from the registry.
- gdb does not step into C++ base class constructors when debugging a derived class constructor. This bug affects debugging applications in Palm OS simulators since gdb is the underlying debugger used by Palm OS Developer Suite for Garnet and Cobalt simulator debugging.

### Global Preferences

- The following global preferences are not properly propagated to standard makefile projects upon creation. The user must manually apply these settings to the makefiles if the defaults in the standard makefiles are not desired. [BUG70719]
  - GNU compiler assertions and exceptions settings
  - Protein linker Generate cross references, image map, and symbols list settings
- In Preferences > Palm OS Development > Target Environment Settings > Targets > Simulator, clicking "new" will create a new simulator target and leave the path empty. Currently the target can be saved with an empty path resulting in an error being generated when trying to use that target. Be sure to change this path to point to a valid simulator that you wish to associate with this new simulator target.

### 68K Development

- The content assist and open declarations are not functional for 68K and PNO project development in this release due to numerous outstanding CDT issues.
- prc-tools contains a partial implementation of C standard library that may produce compilation or link errors when used in C++ files. For instance, one known issue is that using `printf()` in a C++ source file results in link errors. This is a known issue with prc-tools and bugs have been filed with prc-tools to get these issues addressed. It is recommended to use STLport functionality where possible in C++ source files.
- If you directly include the SDK 5.4 header files `DLCommon.h`, `DLServer.h`, `ExgLib.h`, or `ModemMgr.h` in your 68K code, do not use full paths in specifying the headers. If you use full paths in the include specification, you may receive warnings about unused pragmas in those headers. These pragma warnings do not prevent successful compilation of the 68K code and can be ignored.

### PNO Development

- The content assist and open declarations are not functional for 68K and PNO project development in this release due to numerous outstanding CDT issues.
- In this release it is not supported to include any SDK header file in PNO code except for `AdnDebugMgr.h` and `PceNativeCall.h`.
- When using the `-map`, `-symbols`, or `-xref` options in a PNO managed make device target build, the `-list` option is set to `link_output.txt` by default. You can change the output file for those options by modifying the option in the C/C++ Build > Configuration Settings > Palm OS C/C++ Linker > Miscellaneous > Additional options field, or you can remove the `-list` option altogether from that field to get the output in the C-Build view.
- The Palm OS Cobalt Simulator attempts to deference the void* pointer value provided in the second parameter of the PceNativeCall() function. If that value does not point to a valid memory location, an error dialog with occur in the simulator stating something similar to:
  `Emul68KCommon.c(2312): Read from inaccessible address 4`
  To work around this issue, it is recommended to provide a valid memory location in that parameter regardless of whether the data is needed or not in the PNO native code. An example is to have a local variable of UINT32 type and pass in the address of that variable. This will prevent the internal code deference of the parameter from producing the error.
- Global data is not supported in the Palm OS Protein C/C++ compiler when building PNOs. If you use global data, you get a warning message from the pelf2bin command about a non-empty data section.

### Protein Development

- When compiling C++ source files for a simulator target in a Protein managed make project, gcc emits the following warning:
  `cc1plus: warning: "-std=c99" is valid for C/ObjC but not for C++`
  This warning does not prevent successful compilation of the source file and thus can be ignored.
- When compiling C source files for a simulator target in a Protein managed make project, gcc emits the following warning:
  `cc1: warning: "-frtti" is valid for C++ but not for C/ObjC`
  This warning does not prevent successful compilation of the source file and thus can be ignored.
- The PalmSource C/C++ compiler documentation lists a `-P` option to preprocess output to a file. This option is not supported in a Protein or PNO managed make project. To accomplish the same desired output (that is, get preprocessing output to a file for source files), you can execute the compiler against the desired file from the command line with the required options.
- If you include `<HWREngine.h>` file in your source files to use Graffiti2 functionality, then for the device target you have to update your makefile/project to link to the graffiti2lib library explicitly because this library is not included by linking in `PalmOS.a`.
- When using the `-map`, `-symbols`, or `-xref` options in a Protein managed make device target build, the `-list` option is set to `link_output.txt` by default. You can change the output file for those options by modifying the option in the C/C++ Build > Palm OS C/C++ Linker > Miscellaneous > Additional options field, or you can remove the `-list` option altogether from that field to get the output in the C-Build view.
- The compilers for Protein device and simulator targets do not perform two-phase template dependent name lookup by default. If you wish to use two-phase lookup with modern C++ code, this can be enabled for the compiler used for device builds with the `‑‑dep_name` command line option. The current version of the compiler used for simulator builds does not support two-phase lookup.
- A problem with the configuration of the Palm OS Protein C/C++ Compiler runtime libraries can cause the linker error "duplicated symbol '__cxa_bad_cast'."

### Samples

- The SDK 6 samples cannot build from the command line as is. You must import the projects into Palm OS Developer Suite via "Import > Existing Project" and compile there first in order to build from the command line. [BUG81995]
- The sample "Memo" project generates warnings about incompatible pointer types.
- Bluetooth Samples and Palm OS Simulator
  Palm OS Simulator does not simulate Bluetooth hardware, so to run the Bluetooth samples, you need to have Bluetooth hardware. If you attempt to run the Bluetooth samples without Bluetooth hardware, Palm OS Simulator displays an error message.
- HardBall and SubHunt samples application do not run on Emulator. HardBall and SubHunt use newer functions from PalmOS 5.x and these functions do not exist in the older Emulator ROMs. To run/debug HardBall and SubHunt use the Palm OS Cobalt Simulator or Palm OS Garnet Simulator.
- If you choose to custom install SDKs, then building SDK samples using "make" will not build the samples. To build samples by using "make ", first you have to import samples in the Eclipse IDE so that it would generate the auto-generated.mk file.Auto-generated.mk will set all the variables to correct locations and is already conditionally being included in all the sample makefiles.
- Source files for the Protein SDK BooksLib sample library are no longer being shipped with PODS 1.1. BooksLib is now part of the ROM for Palm OS Cobalt. Headers files of the BooksLib samples still reside in its original location, which is sdk-6.1\samples\Libraries\bookslib.

### Compiling

> This product contains a pre-release version of the PalmSource Palm OS Protein C/C++ Compiler. Significant known issues in this compiler include:

- While debugging, objects declared with a typedef will appear as the underlying type, and not the typedef that the developer compiled with. The value and/or members will still be visible, but the type may not be what was expected.
- Link errors are possible with functions containing some forms of static nested anonymous unions, if debugging is enabled.
- By default, friend declarations will cause the friended declaration to be visible to normal lookups. To disable this (and match the C++ standard) the switch ‑‑no_friend_injection can be added to the C++ compiler options.
- By default, declaration-time template dependent name lookup is disabled, to match the behavior of the included gcc compilers. To enable C++ standard argument dependent lookup, the switch ‑‑dep_name can be added to the C++ compiler options.
- The compiler can emit 'unusual error's in some obscure optimization cases.

> We would appreciate reports of any bugs or abnormal behavior that developers encounter.

### Debugging - 68K

- Sometimes multiple target device settings may appear in the debug configuration panel for managed make 68K projects. This is indicative that the project file was produced corrupted by a wizard bug of yet unknown origins. The workaround is to delete the project and recreate the project and reimport your source into the new project.
- The integrated debugger for 68K projects may lose communications with the device when attempting to run a large application, for example the To Do example program, due to a communications timeout.
- Reinstalling a 68K application when DevNub is running can result in destabilizing the Palm OS on the debug target, e.g. the Palm OS may crash or not respond. The work around is to delete the 68K application from the Cobalt Simulator prior to debugging and running using the debugger and DevNub.prc.
- If you attempt to connect to a 68K device with the debugger before the device has entered console mode (using shortcut dot two or one of the DotDotTwo or DevNub programs), the device may crash requiring a physical reset. [BUG57828]

### Debugging - PNO

- Integrated debugging of PNO applications is not supported in this release of Palm OS Developer Suite. You can debug the 68K portion of a 68K PNO application from within Palm OS Developer Suite but you will not be able to step into the ARM-native code in the PNO. In addition, you should comment out the line that reads "#define __OS6DBG__" at the top of the PNO source file (PNOMain.c or equivalent). This will disable PNO Debugging calls which would otherwise cause the device to crash when debugging from within the Palm OS Developer Suite. If you wish to debug inside the PNO code, you must use the standalone Palm OS Debugger.

### Debugging - Protein

- There is a known issue with debugging of multithreaded Protein applications on the Palm OS Cobalt simulator. The cause is as of yet unknown, but the result is that one cannot debug multithreaded applications properly. While it occurs on all machine types, it has been noticed to occur more frequently on multiple CPU machines. [BUG66669]
- There is a known issue with debugging Protein applications on Cobalt devices from within Palm OS Developer Suite where continually stepping out of the code may cause the device to freeze. The workaround is to use the standalone Palm OS Debugger application. [BUG70676]

### Debugging - General

- In order to watch expressions in Palm OS Developer Suite, you must use "Add Expression" in the Debug perspective to see the values. This is a known CDT issue.
- There is a known issue that the under certain scenarios the 'Evaluate' button may not work in the Memory view in the Debug perspective. If you go to the address text field in the Memory view and paste in an address and then hit the 'Evaluate' button, the memory displayed may not be updated. The workaround is to hit the 'Enter' key after pasting in the address in the address text field; hitting enter works while the Evaluate button does not always work. [BUG71236]
- There is a known display issue in the Debug perspective in which symbols may not available for viewing. If the Debug perspective needs to be opened after hitting a breakpoint , then the wrong thread may be selected in the top left panel (called the Launch View). The user can collapse that thread and expand the correct one (typically the second from last thread in the list) and select the function in the stack trace, thus bringing up the source file with the breakpoint. Also, this happens only if the Debug perspective is not already open, so the workaround is manually opening the Debug perspective first. [BUG64868]
- There is a known issue with termination of a debug session. If you attempt to terminate a debug session by selecting the top-most tree item in the Debug view in the Debug perspective (the top-most tree item is usually the application name followed by Palm OS Application) and then right-clicking and selecting Terminate, the debug session on the debugging target (e.g. simulator or device) will not terminate. You must then either reset the device or close the simulator in order to recove that debugging target. The workaround is to use the Terminate button from the Debug perspective toolbar (the red square). You can also right-click and terminate on the Palm OS Debugger entry (the second entry in the tree in the Debug view). [BUG70653]
- There is a known issue with viewing global variables in the Variables view that affects 68K debugging and Protein device debugging. During debugging, if the user right clicks in the Variables view and selects "Add Global Variables" from the menu, the list of global variables will be empty. The workaround is to add the global variable in the "Expressions view" by right clicking in the view and selecting "Add Watch Expression" and then explicitly typing out the variable name. [BUG68274]
- The current CDT architecture for debugging applications utilizes the MI interface of gdb for debugging command invocation and interpretation. Unfortunately console output to sdtout and stderr in applications being debugged also pass through this MI interface and are potentially misinterpreted as MI commands. This affects printf statements in applications running in Palm OS Simulators. Any printf statements (or any output to stdout or stderr for that matter) beginning with a number or the characters ^, *, +, =, ~, @, or & can be misinterpreted by the CDT debugging code. The result is either malformed console output or worse yet debugging failures. The workaround for this issue is to ensure that all console output not begin with the previously specified characters or numbers. It is recommended to begin all output either with spaces or the application name to avoid this issue.
- The Palm OS simulators and the Palm OS emulator may share the same TCP/IP port for debugging, especially in workspaces created using Palm OS Developer Suite 1.0.0. The result of this is that you must ensure that only one instance or any of the simulators or emulators is running at one time when you try to debug. For example, if an instance of simulator is running but you try to launch a debug session targeting an emulator, the debug session will instead use the simulator. The workaround is to always close your simulators and emulators after stopping a debug session.
- The Palm OS Cobalt simulator may freeze if you've completed a Run session in a simulator instance and then immediately started a Debug session without first shutting down the Simulator. The workaround is to shut down the simulator instance after the run session. The debug session will then automatically launch a new simulator instance.
- When debugging using the standalone Palm OS Debugger application, breakpoints will (by default) automatically be saved and restored from one debugging session to another. Breakpoints are referenced by source file and line number. If a source file has been changed, the saved line number(s) may become incorrect. To avoid this, you can manually remove the ".pud" file that was written in the same directory as the built ".prc" file. Another option is to go to the "Debugger UI: Session" preference panel and change "Automatically restore session settings for executables (exe.pud)" to "False". This will cause the debugger to ask you whether you wish to restore old breakpoints from a saved ".pud" file.
- Known issues with stepping into shared library calls:
  - Stepping into a function call of a shared library for which you do not have source code is not supported, as Palm OS Developer Suite does not support stepping at the assembly language level. Attempting to step into such a library will end your debugging session.
  - Stepping into a function call of a shared library for which you do have source code will work as long as you single-step through the shared library's call-stub function, provided that the library has already been loaded. If the library has not yet been loaded then the library loader will be invoked and you cannot step through that code (see previous issue). [BUG69310]
  - To debug your shared library, either set a breakpoint inside the shared library, or be sure that the library has already loaded before attempting to step into a library call from the calling code.
- There may be some problems with certain configurations or usage scenarios involving device debugging over USB. For example, a crash or abnormal termination in PalmOSDebuggerMI.exe may be seen when terminating a 68K debug session, or Palm OS Developer Suite may freeze when initiating a 68K Debug or Run session. These problems have not been consistently reproduced and may still exist.
  If an "Application Error" dialog appears in PODS when terminating a Debug session, clicking "OK" should allow subsequent Debug or Run sessions. Resetting the target device may also help.
  In some cases, like when Palm Desktop and HotSyncŪ 4.x are installed instead of 6.x, simply removing the device from the USB cradle and replacing it again can unfreeze an unresponsive Palm OS Developer Suite. This is the easiest workaround for the case where trying to Run (not Debug) a 68K target on a device (over USB) twice in a row causes the desktop machine to reboot.
  If device debugging over USB does not seem to be working at all (e.g. attempting to start a Debug or Run session freezes Palm OS Developer Suite for a while but eventually times out) there may be a DLL conflict. Other installed software may cause the Microsoft C runtime library to deadlock when Palm OS Developer Suite attempts to connect to the target device. Identifying the source of this conflict can be difficult, but cases have been found where removing (for example) an installed graphics tablet driver (which was patching a system DLL to provide customized per-application settings) solved the problem.
  Other workarounds for USB debugging problems include:
  - Making sure the path to the USBPort DLL in Window > Preferences > Target Environment Settings > Device > Device (USB) > USB Library Path is set to "USBPort-POD.dll". Another option (if you have HotSyncŪ 4.x installed) would be setting the path to the USBPort.dll file which is located in the Palm (OS) Desktop folder, typically at C:\Palm, C:\Program Files\Palm Desktop, or C:\Program Files\Palm OS Desktop (unless this causes freezes or timeouts as described above).
  - Upgrading to Palm OS Desktop (and/or HotSyncŪ ) version 6.0 or later.
  - Using a serial connection to the device (if possible) instead of USB.
  - Using the standalone version of the Palm OS Debugger (the "ladybug" button on the toolbar in the Palm OS C/C++ perspective) instead of PODS-integrated debugging. Additionally, the standalone PalmOSDebugger.exe can be found in the "Palm OS Developer Suite\PalmOSTools\Palm OS Debugger" folder. When running Palm OS Debugger for the first time, be sure to import the correct preset preferences file. To do this, select "Preferences" from the "Edit" menu, then click "Import", locate the "Preset Prefs" folder, and select the correct file to match the desired debugging configuration.
- If one or more spaces is used in the name of a Protein application targeting the Cobalt Simulator, there is a known issue in that breakpoints will not be recognized when debugging this application. The workaround is to remove any spaces from the application name and then rebuilding the application before debugging. For standard make projects, the application name is changed in the file `makefile`. For managed make projects, select the Manage... button on the File > Properties > C/C++ Build property page for a project and change the artifact name. [BUG82264]

### General

- Avoid using periods in project names. Palm OS Developer Suite may not be able to automatically run an application on Palm OS Simulator if you use periods in your project name.
- When specifying directories in project properties, you must either escape any whitespaces in the directory string or double quote the string so that the make system an the underlying prc-tools system can properly interpret your directories.
- The "Apply Defaults" button on a managed make project's C/C++ Build property page does not restore the default preferences set in the global Palm OS preferences. This is due to a system limitation in CDT, so it is not recommended to use the "Apply Defaults" if you've changed your default Palm OS preferences. This will be fixed in a future release of Palm OS Developer Suite.
- The release of the CDT (C Development Tools) from Eclipse that is included in Palm OS Developer Suite does not support having source files in any linked folders in a project. This is a known issue with the CDT and therefore affects all Palm OS Developer Suite projects that attempt to use linked folders.
- The Eclipse Help viewer uses Internet Explorer to render the HTML pages. If your IE security settings are set to "High", no help items are displayed for topics. The help system also may not work if JavaScript is turned off or if your firewall blocks port 4995 on your local machine from access.
- Some key mappings may not work if your operating system is configured for a locale other than English. For example, the print key mapping (Ctrl+P) doesn't work when the locale is set to Chinese. It is recommended to always use the English locale in the operating system when using Palm OS Developer Suite. [BUG71237]
- The included documentation in the Workbench Users Guide > Tasks > Updating features with the update manager > Restoring a saved configuration contains an error. It incorrectly states "Open the main update manager by clicking Help > Software Updates > Update Manager. This opens the Install/Update perspective". This should be "Open the Manage Configuration dialog by clicking Help > Software Updates > Manage Configuration... This opens the Manage Configuration dialog". [BUG82682]

## Other Information

### Undocumented Features

The Palm OS Protein C/C++ Compiler has a `--preinclude` switch that acts like the prefix file feature in the CodeWarrior compilers. The text of the file specified by this switch is included before each source file, as if it were #included immediately before the source text begins. The usage is `--preinclude=filename.h`.

### Licensing

- The Palm OS Emulator is licensed under the GNU General Public License (GPL). Per section 3 for the GPL, the source for Palm OS Emulator available at the PalmSource website at http://www.palmos.com/dev/dl/dl_tools/dl_emulator/.
- Cygwin is licensed under the GNU General Public License (GPL). PalmSource has made modifications to Cygwin to fix bugs and/or enhance functionality. Per section 3 of the GPL, the patched source is available as part of the Palm OS Developer Suite download and on the PalmSource website. The patched source is located in well labelled zip files Palm OS Developer Suite in the directory `<root install>/eclipse/plugins/com.palmsource.eclipse.cygwin.mods.win32_X.X.X.X` , where X.X.X.X indicates the Palm OS Developer Suite version of the modifications distributed. The source on the website is located at http://www.palmos.com/dev/tools/dev_suite.html. Follow the link for downloading Palm OS Developer Suite. The patches and source are located in the download area along side the developer suite download.
- Eclipse 3.0.1 and CDT 2.0.2 are licensed under the Common Public License (CPL). PalmSource has made modifications to CDT to fix bugs and/or enhance functionality. The description o fhte patches made is availabie as part of the Palm OS Developer Suite download and on the PalmSource website. The patch description is located in Palm OS Developer Suite in the directory `<root install>/eclipse/features/org.eclipse.cdt_X.X.X.X` , where X.X.X.X indicates the Palm OS Developer Suite version of the modifications distributed. The source on the website is located at http://www.palmos.com/dev/tools/dev_suite.html . Follow the link for downloading Palm OS Developer Suite. The patch descriptions are located in the download area along side the developer suite download.
- STLport code included in Palm OS Developer Suite requires the following licensing, copyright, and permission notices:
  Copyright 1999,2000 Boris Fomitchev

  > This material is provided "as is", with absolutely no warranty expressed or implied. Any use is at your own risk.
  > Permission to use or copy this software for any purpose is hereby granted without fee, provided the above notices are retained on all copies. Permission to modify the code and to distribute modified code is granted, provided the above notices are retained, and a notice that the code was modified is included with the above copyright notice.

  Copyright 1994 Hewlett-Packard Company
  Copyright 1996,97 Silicon Graphics Computer Systems, Inc.
  Copyright 1997 Moscow Center for SPARC Technology.

  > Permission to use, copy, modify, distribute and sell this software and its documentation for any purpose is hereby granted without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation. Hewlett-Packard Company makes no representations about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty.

  > Permission to use, copy, modify, distribute and sell this software and its documentation for any purpose is hereby granted without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation. Silicon Graphics makes no representations about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty.

  > Permission to use, copy, modify, distribute and sell this software and its documentation for any purpose is hereby granted without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation. Moscow Center for SPARC Technology makes no representations about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty.

  Portions Copyright (c) 1997 Mark of the Unicorn, Inc.

  > Permission to use, copy, modify, distribute and sell this software and its documentation for any purpose is hereby granted without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation. Mark of the Unicorn makes no representations about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty.

- PalmSource copyright notice:

  > PalmSource, the PalmSource logo, HotSync, Palm, the Palm logo, and Palm OS are trademarks of PalmSource, Inc. or its affiliates. All other product and brand names may be trademarks or registered trademarks of their respective owners.

    PalmSource, Inc.
    1188 East Arques Avenue
    Sunnyvale, California 94085
    (408) 400-3000