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