[racket-dev] Strange error with gui and ffi

From: Tobias Hammer (tobias.hammer at dlr.de)
Date: Thu Jan 19 07:30:40 EST 2012

Hi,

i am getting a strange error message from racket if i use racket/gui in 
the main module and only racket in a required one. If i load another 
shared lib in the required module i get the following output:

jpeg: unsupported library version: "unknown"

  === context ===
racket-5.2.0.1/collects/racket/draw/unsafe/jpeg.rkt: [running body]
racket-5.2.0.1/collects/racket/draw/private/bitmap.rkt: [traversing imports]
racket-5.2.0.1/collects/racket/draw/private/dc.rkt: [traversing imports]
racket-5.2.0.1/collects/racket/draw/private/svg-dc.rkt: [traversing imports]
racket-5.2.0.1/collects/racket/draw.rkt: [traversing imports]
racket-5.2.0.1/collects/mred/private/kernel.rkt: [traversing imports]
racket-5.2.0.1/collects/mred/private/const.rkt: [traversing imports]
racket-5.2.0.1/collects/mred/private/check.rkt: [traversing imports]
racket-5.2.0.1/collects/mred/private/mred.rkt: [traversing imports]
racket-5.2.0.1/collects/mred/mred.rkt: [traversing imports]
racket-5.2.0.1/collects/mred/main.rkt: [traversing imports]
racket-5.2.0.1/collects/racket/gui/base.rkt: [traversing imports]
racket-5.2.0.1/collects/racket/gui.rkt: [traversing imports]
guibug.rkt: [traversing imports]

Same problem with last nightly. It seems like it is happening only if 
the shared lib is statically linked to another libjpeg but as far as i 
understand that should have no invfuence on anything. It's also not 
happening if i use racket/gui instead of only racket as lang in the 
required module.

I used the following code to produce the error.

guibug.rkt:
#lang racket/gui
(require "guibug_req.rkt")

guibug_req.rkt
#lang racket
(require ffi/unsafe)
(require racket/runtime-path)

(define-runtime-path lib-path "libVLCore")
(define lib-handle (ffi-lib lib-path))

Has anyone an idea what is happening there?

Tobias



Posted on the dev mailing list.