cb424d7448
verify-patch-sanity.py validates every active recipe .patch has internally- consistent hunk line counts — catching the 'malformed patch at line N' failure at commit/CI/preflight time instead of hours into a cook. This cycle hit that class three times (qtwaylandscanner, sddm, xwayland), each only discovered when cookbook tried to apply the patch. Running it across the repo found 29 latent malformed patches (validated against GNU patch: e.g. relibc/P3-sysv-ipc reproduces 'malformed patch at line 22'). They were harmless only because they sit in vendored recipes (baked, not re- applied) — but would fail on any version-bump re-derivation. --fix recounts the hunk headers (body untouched) and repaired all 29. Wired into build-preflight.sh (Phase 1.0D) and redbear-ci.yml, with a unit test (test-patch-sanity.sh). Skips archived/legacy trees and unvalidatable formats (empty placeholders, bare-@@ git hunks).
45 lines
1.3 KiB
C
45 lines
1.3 KiB
C
/*
|
|
This test makes sure that flang's runtime does not depend on the C++ runtime
|
|
library. It tries to link this simple file against libflang_rt.runtime.a with
|
|
a C compiler.
|
|
|
|
UNSUPPORTED: system-windows
|
|
UNSUPPORTED: offload-cuda
|
|
|
|
RUN: %if system-aix %{ export OBJECT_MODE=64 %}
|
|
RUN: %cc -std=c99 %s -I%include -L"%libdir" -lflang_rt.runtime -lm \
|
|
RUN: %if system-aix %{-lpthread %}
|
|
RUN: rm a.out
|
|
*/
|
|
|
|
#include "flang/Runtime/entry-names.h"
|
|
#include <stdint.h>
|
|
|
|
/*
|
|
Manually add declarations for the runtime functions that we want to make sure
|
|
we're testing. We can't include any headers directly since they likely contain
|
|
C++ code that would explode here.
|
|
*/
|
|
struct EnvironmentDefaultList;
|
|
struct Descriptor;
|
|
|
|
double RTNAME(CpuTime)();
|
|
|
|
void RTNAME(ProgramStart)(
|
|
int, const char *[], const char *[], const struct EnvironmentDefaultList *);
|
|
int32_t RTNAME(ArgumentCount)();
|
|
int32_t RTNAME(GetCommandArgument)(int32_t, const struct Descriptor *,
|
|
const struct Descriptor *, const struct Descriptor *);
|
|
int32_t RTNAME(GetEnvVariable)();
|
|
int64_t RTNAME(SystemClockCount)(int kind);
|
|
|
|
int main() {
|
|
double x = RTNAME(CpuTime)();
|
|
RTNAME(ProgramStart)(0, 0, 0, 0);
|
|
int32_t c = RTNAME(ArgumentCount)();
|
|
int32_t v = RTNAME(GetCommandArgument)(0, 0, 0, 0);
|
|
int32_t e = RTNAME(GetEnvVariable)("FOO", 0, 0);
|
|
int64_t t = RTNAME(SystemClockCount)(8);
|
|
return x + c + v + e;
|
|
}
|