[racket] Adding OS X linker options using raco exe

From: Norman Gray (norman at astro.gla.ac.uk)
Date: Thu Oct 21 09:58:13 EDT 2010


I'm trying to code-sign a Racket standalone server on OS X.  I've got a bit stuck.

I'm following the instructions at <http://developer.apple.com/library/mac/#documentation/Security/Conceptual/CodeSigningGuide/Procedures/Procedures.html%23//apple_ref/doc/uid/TP40005929-CH4-SW2>.  These include the instruction to create a suitable section in an output binary by adding arguments to the linker options:

    -sectcreate __TEXT __info_plist Info.plist_path

(my understanding is that this extra section is examined later by the actual code-signing utility).

I tried doing that using the ++exf options to raco exe:

% "/Data/LocalApplications/Racket/Racket v5.0.1/bin/raco" exe -v -o build/simbad-lod ++exf -sectcreate ++exf __TEXT ++exf __info_plist ++exf /Data/tools/simbad-lod/share/Info.plist --exf-show server.ss
Flags to embed: ("-U" "--" "-sectcreate" "__TEXT" "__info_plist" "/Data/tools/simbad-lod/share/Info.plist")
create-embedding-executable: command line too long: '("-U" "--" "-sectcreate" "__TEXT" "__info_plist" "/Data/tools/simbad-lod/share/Info.plist")

 === context ===
/Data/LocalApplications/Racket/Racket v5.0.1/collects/compiler/embed-unit.rkt:1019:4: core
/Data/LocalApplications/Racket/Racket v5.0.1/collects/compiler/commands/exe.rkt: [running body]
/Data/LocalApplications/Racket/Racket v5.0.1/collects/raco/raco.rkt: [running body]
/Data/LocalApplications/Racket/Racket v5.0.1/collects/raco/main.rkt: [running body]


...without success.  The only place that ++exf is obviously documented is in 'raco help exe', so I'm not sure I'm doing this correctly, and the error message 'command line too long' is a little opaque.

Can anyone point me in the right direction?

Best wishes,


Norman Gray  :  http://nxg.me.uk

Posted on the users mailing list.