From 013206de391d548f1889670e35fc9da6890d6469 Mon Sep 17 00:00:00 2001 From: Krystine Sherwin <93062060+KrystalDelusion@users.noreply.github.com> Date: Thu, 20 Mar 2025 14:23:37 +1300 Subject: [PATCH] Fix #3898 (again) --- libs/fst/00_PATCH_i386_endian.patch | 14 ++++++++++++++ libs/fst/00_UPDATE.sh | 1 + libs/fst/fstapi.cc | 5 ++++- 3 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 libs/fst/00_PATCH_i386_endian.patch diff --git a/libs/fst/00_PATCH_i386_endian.patch b/libs/fst/00_PATCH_i386_endian.patch new file mode 100644 index 000000000..3857f1fdf --- /dev/null +++ b/libs/fst/00_PATCH_i386_endian.patch @@ -0,0 +1,14 @@ +--- fstapi.cc ++++ fstapi.cc +@@ -4723,7 +4723,10 @@ if(gzread_pass_status) + hdr_incomplete = (xc->start_time == 0) && (xc->end_time == 0); + + fstFread(&dcheck, 8, 1, xc->f); +- xc->double_endian_match = (dcheck == FST_DOUBLE_ENDTEST); ++ /* ++ * Yosys patch: Fix double endian check for i386 targets built in modern gcc ++ */ ++ xc->double_endian_match = (dcheck == (double)FST_DOUBLE_ENDTEST); + if(!xc->double_endian_match) + { + union { diff --git a/libs/fst/00_UPDATE.sh b/libs/fst/00_UPDATE.sh index 66a0fd8df..302e187f2 100755 --- a/libs/fst/00_UPDATE.sh +++ b/libs/fst/00_UPDATE.sh @@ -19,3 +19,4 @@ patch -p0 < 00_PATCH_win_zlib.patch patch -p0 < 00_PATCH_win_io.patch patch -p1 < 00_PATCH_strict_alignment.patch patch -p0 < 00_PATCH_wx_len_overread.patch +patch -p0 < 00_PATCH_i386_endian.patch diff --git a/libs/fst/fstapi.cc b/libs/fst/fstapi.cc index ab3c54469..2463e6f15 100644 --- a/libs/fst/fstapi.cc +++ b/libs/fst/fstapi.cc @@ -4723,7 +4723,10 @@ if(gzread_pass_status) hdr_incomplete = (xc->start_time == 0) && (xc->end_time == 0); fstFread(&dcheck, 8, 1, xc->f); - xc->double_endian_match = (dcheck == FST_DOUBLE_ENDTEST); + /* + * Yosys patch: Fix double endian check for i386 targets built in modern gcc + */ + xc->double_endian_match = (dcheck == (double)FST_DOUBLE_ENDTEST); if(!xc->double_endian_match) { union {