From cab0135f57ca1c7e448e11f866b0adb8a1328d48 Mon Sep 17 00:00:00 2001 From: Xavier Del Campo Romero Date: Sun, 11 Oct 2026 01:26:41 +0200 Subject: WIP triplet --- src/prc1/triplet.c | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 src/prc1/triplet.c (limited to 'src/prc1/triplet.c') diff --git a/src/prc1/triplet.c b/src/prc1/triplet.c new file mode 100644 index 0000000..37d6e10 --- /dev/null +++ b/src/prc1/triplet.c @@ -0,0 +1,40 @@ +#include "prv.h" +#include "arg.h" +#include "parse.h" +#include "triplet/prv.h" +#include +#include + +const char *triplet(const struct prv *p) +{ + const struct args *args = p->ast->args; + + return args->triplet; +} + +static const struct type *find(const char *s, const struct type (*v)[12]) +{ + for (size_t i = 0; i < sizeof *v / sizeof **v; i++) + if (!strcmp(s, (*v)[i].u.b.name)) + return &(*v)[i]; + + return NULL; +} + +const struct type *triplet_type(const char *tr, const char *s) +{ + static const struct + { + const char *s; + const struct type (*v)[12]; + } m[] = + { + {"x86_64-linux-gnu", &x86_64_linux_gnu} + }; + + for (size_t i = 0; i < sizeof m / sizeof *m; i++) + if (!strcmp(tr, m[i].s)) + return find(s, m[i].v); + + return NULL; +} -- cgit v1.2.3