Hi, I've been trying to use libpng inside the secure world of i.MX53 QSB TrustZone aware TZ_VMM example.

I want to receive an image from the normal world (running Linux) and do some process the image in some way inside the secure world.

I understand the flow of genode and tz_vmm in particular and there are some examples on how to communicate data between the normal and secure world, so that's not my problem right now. My problem is that I cannot run tz_vmm after adding libpng as a lib.

In order to use libpng inside tz_vmm I did the following:
    1) in $(BUILDDIR)/etc/build.conf uncommented this line
        REPOSITORIES += $(GENODE_DIR)/repos/libports

    2) inside $(GENODE_DIR)/repos/libports I did:
        make prepare PKG="libc zlib libpng"

    3) inside $(BUILDDIR)/repos/os/src/server/tz_vmm/spec/imx53 I added the following to target.inc
        LIBS     += libc
        LIBS     += zlib
        LIBS     += libpng

    4) then I added #include <png.h> inside main.cc

    5) finally inside $(BUILDDIR) I did
        make run/tz_vmm

All these steps compiled fine, but when I run this on my board the following message comes up:

## Booting kernel from Legacy Image at 70200000 ...
   Image Name:   
   Image Type:   ARM Linux Kernel Image (gzip compressed)
   Data Size:    7888432 Bytes = 7.5 MiB
   Load Address: 70010000
   Entry Point:  70010000
   Verifying Checksum ... OK
   Uncompressing Kernel Image ... OK

Starting kernel ...

kernel initialized
Genode 16.02
int main(): --- create local services ---
int main(): --- start init ---
int main(): transferred 242 MB to init
int main(): --- init created, waiting for exit condition ---
[init] Could not open ROM session for module "ld.lib.so"
[init] parent provides
[init]   service "ROM"
[init]   service "RAM"
[init]   service "IRQ"
[init]   service "IO_MEM"
[init]   service "IO_PORT"
[init]   service "CAP"
[init]   service "PD"
[init]   service "RM"
[init]   service "CPU"
[init]   service "LOG"
[init]   service "SIGNAL"
[init]   service "VM"
[init] Dynamically linked file found, but no dynamic linker binary present
[init] unknown exception?
[init] child "tz_vmm"
[init]   RAM quota:  10203136
[init]   ELF binary: tz_vmm
[init]   priority:   0

What have I done wrong? It seems I need to add a binary somewhere, but I don't know where. Do I need to compile anything else in order to libpng to be usable inside genode?

Thanks in advance!

Best regards, Tiago