gambitc -link -flat -o tcv-services.o1.c tcv-services.scm
*** WARNING -- "##fx=" is not defined,
***            referenced in: ("/home/taylor/Repos/gambit-libs/tcv-services.c")
gcc -c -o os_services.o  -g -Wall -Wno-unused -fPIC os_services.c
gcc -c -o tcv-services.o1.o  -D___DYNAMIC -g -Wall -Wno-unused -fPIC tcv-services.o1.c
gcc -shared -o tcv-services.o1 os_services.o tcv-services.o1.o
 10053 [ taylor @ fw-its-kt209a-2 ] : ~/Repos/gambit-libs > gsi tcv-services.o1
*** WARNING -- Could not find C function: "____20_tcv_2d_services_2e_o1"
*** ERROR IN ##main -- /home/taylor/Repos/gambit-libs/tcv-services.o1: undefined symbol: ____20_tcv_2d_services
(load "tcv-services.o1")



;;;; tcv-services.scm

(c-declare #<<END
  #include "os_services.h"
END
)

(define (service->port name)
  (let ((port ((c-lambda (char-string char-string) int "__service_to_port") name)))
    (if (##fx= port -1) #f port)))



;;;; os_services.c

#include <netdb.h>

#include "os_common.h"
#include "os_services.h"

int __service_to_port(const char *name, const char *proto) {
        struct servent *answer = getservbyname(name, proto);
        return (answer == NULL) ? -1 : answer->s_port;
}



;;;; os_services.h

#ifndef _TCV_GAMBIT_OS_SERVICES_H
#define _TCV_GAMBIT_OS_SERVICES_H

int __service_to_port(const char *, const char *);

#endif



;;;; os_common.h

#ifndef _TCV_GAMBIT_OS_COMMON_H
#define _TCV_GAMBIT_OS_COMMON_H

#define ___VERSION 406003

#include <stddef.h>
#include <gambit.h>

#endif