VxWorks and shared libraries - VxWorks

This is a discussion on VxWorks and shared libraries - VxWorks ; Does VxWorks support shared libraries? If yes, which release was the support added. I started on project using a pretty old VxWorks and GNU toolchain release (don't know the release, maybe 4.0.2). A windows application with lots of DLLs shall ...

+ Reply to Thread
Results 1 to 3 of 3

Thread: VxWorks and shared libraries

  1. VxWorks and shared libraries

    Does VxWorks support shared libraries? If yes, which release was the
    support added. I started on project using a pretty old VxWorks and GNU
    toolchain release (don't know the release, maybe 4.0.2). A windows
    application with lots of DLLs shall be embedded. Has anyone experience
    with that kind of thing: can Win32 DLLs somehow be "mapped" to shared
    libraries?

  2. Re: VxWorks and shared libraries

    Recent VxWorks versions, the 6.x series, do support shared libraries
    in a similar way to the UNIX dynamic libraries. This feature is
    available to Real-Time Processes only (i.e. it is not available to
    kernel applications).

    With any release prior to VxWorks 6.0 and for kernel-space development
    with all VxWorks releases it is possible, to some extent, to use the
    object module loader to mimic dynamic libraries by the way of using
    plain object modules. There is however a lot of differences between
    the two features and it is usually quite a lot of work to adapt
    existing code used within true DLLs so that it works when loaded as
    simple object modules into the VxWorks kernel. Some functionality
    available to processes using DLLs simply can't be replicated in the
    VxWorks kernel using only object modules and a simple linking scheme.

    Hope this helps,

    --
    PAD

  3. Re: VxWorks and shared libraries

    On Jun 23, 10:22 am, vl106 wrote:
    > Does VxWorks support shared libraries? If yes, which release was the
    > support added. I started on project using a pretty old VxWorks and GNU
    > toolchain release (don't know the release, maybe 4.0.2). A windows
    > application with lots of DLLs shall be embedded. Has anyone experience
    > with that kind of thing: can Win32 DLLs somehow be "mapped" to shared
    > libraries?



    Uhm.... if you are asking if you can take _binary_ Windows DLLs and
    use them with VxWorks, the answer is no. Windows DLLs are in a
    completely different object/executable code format (PE32 -- VxWorks
    uses ELF), use a completely different set of C calling conventions
    (Windows uses a mix of stdcall, fastcall and cdecl, VxWorks uses cdecl
    only) and rely on a completely different set of underlying OS
    functionality. (And Win32 binaries are x86 only, while VxWorks runs on
    more CPU architectures than just x86.)

    If you want to get your Windows app to run on VxWorks, you'll need the
    source code for all of it, including the libraries on which it relies.
    If your application depends on 3rd party libraries that were purchased/
    licensed without source code, then you have a problem.

    If you do have the source code, you're going to have to make
    substantial changes to it to get it to run with VxWorks, especially if
    it's a GUI-based app instead of a console-only one: VxWorks does have
    a GUI library (WindML), but it's nothing like Windows. Also, I get the
    impression that most Windows apps are written in C++. While the
    VxWorks development environment supports C++, the compiler won't
    handle Microsoft-specific features.

    -Bill

+ Reply to Thread