[Bug preprocessor/58939] Cannot Cross-Build Android Native GCC 4.8 libcpp build conversion errors
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58939 --- Comment #2 from Andrew Pinski --- Interesting POSIX requires st_size to be off_t. I see it is long long on some platforms of bionic. https://android.googlesource.com/platform/bionic/+/refs/heads/master/libc/include/sys/stat.h I don't know if there is a way to support this correctly. because using off_t will cause a truncatation. Likewise for st_mtime too. I don't know the right away to fix this without major changes to the sources. So the question becomes do we want to support non-POSIX targets for these structs here?
[Bug preprocessor/58939] Cannot Cross-Build Android Native GCC 4.8 libcpp build conversion errors
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58939 --- Comment #1 from chaselton --- UPDATE: Thanks to Jonathan Wakely and Ian Taylor for providing the codefixes. This bug is resolved by adding the following to files.c in lines 715-726: if (regular && total != size && STAT_SIZE_RELIABLE (file->st)) cpp_error (pfile, CPP_DL_WARNING, "%s is shorter than expected", file->path); ++ off_t ot = file->st.st_size; file->buffer = _cpp_convert_input (pfile, CPP_OPTION (pfile, input_charset), buf, size + 16, total, &file->buffer_start, ++ &ot /*&file->st.st_size*/); ++ file->st.st_size = ot; file->buffer_valid = true; NOTE: The following also must be added to macro.c in order for libcpp to build successfully in lines 248-253: if (st) { ++ time_t t = (time_t) st->st_mtime; ++ tb = localtime (&t); /* tb = localtime (&st->st_mtime); */ }
[Bug preprocessor/58939] Cannot Cross-Build Android Native GCC 4.8 libcpp build conversion errors
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58939 Jonathan Wakely changed: What|Removed |Added Severity|blocker |normal