From 739f3a8cda69e08c3f01ad0b2589668ba44d0652 Mon Sep 17 00:00:00 2001
From: ynqa <un.pensiero.vano@gmail.com>
Date: Thu, 14 Nov 2024 01:03:15 +0900
Subject: [PATCH] revert modification

---
 j9-sys/Cargo.toml |  1 +
 j9-sys/build.rs   | 15 +++++++++++++++
 2 files changed, 16 insertions(+)

diff --git a/j9-sys/Cargo.toml b/j9-sys/Cargo.toml
index bb88e45..2c95959 100644
--- a/j9-sys/Cargo.toml
+++ b/j9-sys/Cargo.toml
@@ -14,4 +14,5 @@ readme = "README.md"
 anyhow = "1.0.80"
 autotools = "0.2.6"
 bindgen = "0.69.4"
+filetime = "0.2.25"
 walkdir = "2.5.0"
diff --git a/j9-sys/build.rs b/j9-sys/build.rs
index f3475dc..81061c6 100644
--- a/j9-sys/build.rs
+++ b/j9-sys/build.rs
@@ -5,8 +5,11 @@ use std::{
     env,
     path::{Path, PathBuf},
     process::Command,
+    time::SystemTime,
 };
 
+use filetime::FileTime;
+
 fn check_installed(name: &str) -> anyhow::Result<()> {
     let check = Command::new(name).arg("--version").output();
 
@@ -38,6 +41,18 @@ fn main() -> anyhow::Result<()> {
     let out_dir = env::var("OUT_DIR").map(PathBuf::from)?;
     let src_dir = Path::new(env!("CARGO_MANIFEST_DIR")).join("jq");
 
+    // Modify the timestamp of parser.c file
+    // to circumvent an error on building in Linux that goes something like:
+    //
+    //   clang: error: no such file or directory: 'src/parser.c'
+    //   clang: error: no input files
+    //   make[2]: *** [Makefile:1051: src/parser.lo] Error 1
+    //   make[1]: *** [Makefile:1188: install-recursive] Error 1
+    //   make: *** [Makefile:1709: install] Error 2
+    let now = FileTime::from(SystemTime::now());
+    let parser_src = src_dir.join("src/parser.c");
+    filetime::set_file_mtime(&parser_src, now)?;
+
     // See https://github.com/jqlang/jq/tree/jq-1.7.1?#instructions
     autotools::Config::new(&src_dir)
         .reconf("-i")