Compare commits

...

4 Commits

Author SHA1 Message Date
Jonathan Schleifer aa9d298907
Merge ad0dce421b into 9d542ac1c2 2024-01-16 11:24:44 +09:00
Wolfgang Thaller 9d542ac1c2
Merge pull request #225 from rhalkyard/macbinary-timestamp
Set a valid timestamp on MacBinary output.
FIXME: makes nix-builds of samples non-deterministic, will need to add support for SOURCE_DATE_EPOCH.
2024-01-15 21:06:33 +01:00
Richard Halkyard f186dc1d57 Set a valid timestamp on MacBinary output 2024-01-04 17:30:55 -06:00
Jonathan Schleifer ad0dce421b
Build cc1obj
This does not build libobjc, as it is broken in several ways. However,
it doesn't matter, since libobjc is basically not used by anyone anyway
and everybody uses a different runtime such as the ObjFW runtime.
2022-11-24 23:36:04 +01:00
3 changed files with 13 additions and 22 deletions

View File

@ -3,6 +3,8 @@
#include <boost/filesystem.hpp> #include <boost/filesystem.hpp>
#include "boost/filesystem/fstream.hpp" #include "boost/filesystem/fstream.hpp"
#include <chrono>
#include <ctime>
#include <sstream> #include <sstream>
#include <iostream> #include <iostream>
@ -73,6 +75,13 @@ static void writeMacBinary(std::ostream& out, std::string filename,
const std::string& rsrcBytes = resstream.str(); const std::string& rsrcBytes = resstream.str();
// Calculate Mac-style timestamp (seconds since 1 January 1904 00:00:00)
std::tm mac_epoch_tm = {
0, 0, 0, // 00:00:00
1, 0, 4 // 1 January 1904
};
auto mac_epoch = std::chrono::system_clock::from_time_t(std::mktime(&mac_epoch_tm));
uint32_t mac_time = std::chrono::duration_cast<std::chrono::seconds>(std::chrono::system_clock::now() - mac_epoch).count();
std::ostringstream header; std::ostringstream header;
byte(header, 0); byte(header, 0);
@ -91,8 +100,8 @@ static void writeMacBinary(std::ostream& out, std::string filename,
byte(header, 0); byte(header, 0);
longword(header, (int)data.size()); longword(header, (int)data.size());
longword(header, (int)rsrcBytes.size()); longword(header, (int)rsrcBytes.size());
longword(header, 0); // creation date longword(header, mac_time); // creation date
longword(header, 0); // modification date longword(header, mac_time); // modification date
while((int)header.tellp() < 124) while((int)header.tellp() < 124)
byte(header,0); byte(header,0);
std::string headerData = header.str(); std::string headerData = header.str();

View File

@ -237,7 +237,7 @@ if [ $SKIP_THIRDPARTY != true ]; then
cd gcc-build cd gcc-build
export target_configargs="--disable-nls --enable-libstdcxx-dual-abi=no --disable-libstdcxx-verbose" export target_configargs="--disable-nls --enable-libstdcxx-dual-abi=no --disable-libstdcxx-verbose"
$SRC/gcc/configure --target=m68k-apple-macos --prefix=$PREFIX \ $SRC/gcc/configure --target=m68k-apple-macos --prefix=$PREFIX \
--enable-languages=c,c++ --with-arch=m68k --with-cpu=m68000 \ --enable-languages=c,c++,objc,obj-c++ --with-arch=m68k --with-cpu=m68000 \
--disable-libssp MAKEINFO=missing --disable-libssp MAKEINFO=missing
# There seems to be a build failure in parallel builds; ignore any errors and try again without -j8. # There seems to be a build failure in parallel builds; ignore any errors and try again without -j8.
make -j8 || make make -j8 || make
@ -280,7 +280,7 @@ if [ $SKIP_THIRDPARTY != true ]; then
cd gcc-build-ppc cd gcc-build-ppc
export target_configargs="--disable-nls --enable-libstdcxx-dual-abi=no --disable-libstdcxx-verbose" export target_configargs="--disable-nls --enable-libstdcxx-dual-abi=no --disable-libstdcxx-verbose"
$SRC/gcc/configure --target=powerpc-apple-macos --prefix=$PREFIX \ $SRC/gcc/configure --target=powerpc-apple-macos --prefix=$PREFIX \
--enable-languages=c,c++ --disable-libssp --disable-lto MAKEINFO=missing --enable-languages=c,c++,objc,obj-c++ --disable-libssp --disable-lto MAKEINFO=missing
make -j8 make -j8
make install make install
unset target_configargs unset target_configargs

View File

@ -1126,7 +1126,6 @@ configure-target: \
maybe-configure-target-libbacktrace \ maybe-configure-target-libbacktrace \
maybe-configure-target-libquadmath \ maybe-configure-target-libquadmath \
maybe-configure-target-libgfortran \ maybe-configure-target-libgfortran \
maybe-configure-target-libobjc \
maybe-configure-target-libgo \ maybe-configure-target-libgo \
maybe-configure-target-libphobos \ maybe-configure-target-libphobos \
maybe-configure-target-libtermcap \ maybe-configure-target-libtermcap \
@ -1316,7 +1315,6 @@ all-target: maybe-all-target-libbacktrace
@endif target-libbacktrace-no-bootstrap @endif target-libbacktrace-no-bootstrap
all-target: maybe-all-target-libquadmath all-target: maybe-all-target-libquadmath
all-target: maybe-all-target-libgfortran all-target: maybe-all-target-libgfortran
all-target: maybe-all-target-libobjc
all-target: maybe-all-target-libgo all-target: maybe-all-target-libgo
@if target-libphobos-no-bootstrap @if target-libphobos-no-bootstrap
all-target: maybe-all-target-libphobos all-target: maybe-all-target-libphobos
@ -1419,7 +1417,6 @@ info-target: maybe-info-target-libgcc
info-target: maybe-info-target-libbacktrace info-target: maybe-info-target-libbacktrace
info-target: maybe-info-target-libquadmath info-target: maybe-info-target-libquadmath
info-target: maybe-info-target-libgfortran info-target: maybe-info-target-libgfortran
info-target: maybe-info-target-libobjc
info-target: maybe-info-target-libgo info-target: maybe-info-target-libgo
info-target: maybe-info-target-libphobos info-target: maybe-info-target-libphobos
info-target: maybe-info-target-libtermcap info-target: maybe-info-target-libtermcap
@ -1509,7 +1506,6 @@ dvi-target: maybe-dvi-target-libgcc
dvi-target: maybe-dvi-target-libbacktrace dvi-target: maybe-dvi-target-libbacktrace
dvi-target: maybe-dvi-target-libquadmath dvi-target: maybe-dvi-target-libquadmath
dvi-target: maybe-dvi-target-libgfortran dvi-target: maybe-dvi-target-libgfortran
dvi-target: maybe-dvi-target-libobjc
dvi-target: maybe-dvi-target-libgo dvi-target: maybe-dvi-target-libgo
dvi-target: maybe-dvi-target-libphobos dvi-target: maybe-dvi-target-libphobos
dvi-target: maybe-dvi-target-libtermcap dvi-target: maybe-dvi-target-libtermcap
@ -1599,7 +1595,6 @@ pdf-target: maybe-pdf-target-libgcc
pdf-target: maybe-pdf-target-libbacktrace pdf-target: maybe-pdf-target-libbacktrace
pdf-target: maybe-pdf-target-libquadmath pdf-target: maybe-pdf-target-libquadmath
pdf-target: maybe-pdf-target-libgfortran pdf-target: maybe-pdf-target-libgfortran
pdf-target: maybe-pdf-target-libobjc
pdf-target: maybe-pdf-target-libgo pdf-target: maybe-pdf-target-libgo
pdf-target: maybe-pdf-target-libphobos pdf-target: maybe-pdf-target-libphobos
pdf-target: maybe-pdf-target-libtermcap pdf-target: maybe-pdf-target-libtermcap
@ -1689,7 +1684,6 @@ html-target: maybe-html-target-libgcc
html-target: maybe-html-target-libbacktrace html-target: maybe-html-target-libbacktrace
html-target: maybe-html-target-libquadmath html-target: maybe-html-target-libquadmath
html-target: maybe-html-target-libgfortran html-target: maybe-html-target-libgfortran
html-target: maybe-html-target-libobjc
html-target: maybe-html-target-libgo html-target: maybe-html-target-libgo
html-target: maybe-html-target-libphobos html-target: maybe-html-target-libphobos
html-target: maybe-html-target-libtermcap html-target: maybe-html-target-libtermcap
@ -1779,7 +1773,6 @@ TAGS-target: maybe-TAGS-target-libgcc
TAGS-target: maybe-TAGS-target-libbacktrace TAGS-target: maybe-TAGS-target-libbacktrace
TAGS-target: maybe-TAGS-target-libquadmath TAGS-target: maybe-TAGS-target-libquadmath
TAGS-target: maybe-TAGS-target-libgfortran TAGS-target: maybe-TAGS-target-libgfortran
TAGS-target: maybe-TAGS-target-libobjc
TAGS-target: maybe-TAGS-target-libgo TAGS-target: maybe-TAGS-target-libgo
TAGS-target: maybe-TAGS-target-libphobos TAGS-target: maybe-TAGS-target-libphobos
TAGS-target: maybe-TAGS-target-libtermcap TAGS-target: maybe-TAGS-target-libtermcap
@ -1869,7 +1862,6 @@ install-info-target: maybe-install-info-target-libgcc
install-info-target: maybe-install-info-target-libbacktrace install-info-target: maybe-install-info-target-libbacktrace
install-info-target: maybe-install-info-target-libquadmath install-info-target: maybe-install-info-target-libquadmath
install-info-target: maybe-install-info-target-libgfortran install-info-target: maybe-install-info-target-libgfortran
install-info-target: maybe-install-info-target-libobjc
install-info-target: maybe-install-info-target-libgo install-info-target: maybe-install-info-target-libgo
install-info-target: maybe-install-info-target-libphobos install-info-target: maybe-install-info-target-libphobos
install-info-target: maybe-install-info-target-libtermcap install-info-target: maybe-install-info-target-libtermcap
@ -2049,7 +2041,6 @@ install-pdf-target: maybe-install-pdf-target-libgcc
install-pdf-target: maybe-install-pdf-target-libbacktrace install-pdf-target: maybe-install-pdf-target-libbacktrace
install-pdf-target: maybe-install-pdf-target-libquadmath install-pdf-target: maybe-install-pdf-target-libquadmath
install-pdf-target: maybe-install-pdf-target-libgfortran install-pdf-target: maybe-install-pdf-target-libgfortran
install-pdf-target: maybe-install-pdf-target-libobjc
install-pdf-target: maybe-install-pdf-target-libgo install-pdf-target: maybe-install-pdf-target-libgo
install-pdf-target: maybe-install-pdf-target-libphobos install-pdf-target: maybe-install-pdf-target-libphobos
install-pdf-target: maybe-install-pdf-target-libtermcap install-pdf-target: maybe-install-pdf-target-libtermcap
@ -2139,7 +2130,6 @@ install-html-target: maybe-install-html-target-libgcc
install-html-target: maybe-install-html-target-libbacktrace install-html-target: maybe-install-html-target-libbacktrace
install-html-target: maybe-install-html-target-libquadmath install-html-target: maybe-install-html-target-libquadmath
install-html-target: maybe-install-html-target-libgfortran install-html-target: maybe-install-html-target-libgfortran
install-html-target: maybe-install-html-target-libobjc
install-html-target: maybe-install-html-target-libgo install-html-target: maybe-install-html-target-libgo
install-html-target: maybe-install-html-target-libphobos install-html-target: maybe-install-html-target-libphobos
install-html-target: maybe-install-html-target-libtermcap install-html-target: maybe-install-html-target-libtermcap
@ -2229,7 +2219,6 @@ installcheck-target: maybe-installcheck-target-libgcc
installcheck-target: maybe-installcheck-target-libbacktrace installcheck-target: maybe-installcheck-target-libbacktrace
installcheck-target: maybe-installcheck-target-libquadmath installcheck-target: maybe-installcheck-target-libquadmath
installcheck-target: maybe-installcheck-target-libgfortran installcheck-target: maybe-installcheck-target-libgfortran
installcheck-target: maybe-installcheck-target-libobjc
installcheck-target: maybe-installcheck-target-libgo installcheck-target: maybe-installcheck-target-libgo
installcheck-target: maybe-installcheck-target-libphobos installcheck-target: maybe-installcheck-target-libphobos
installcheck-target: maybe-installcheck-target-libtermcap installcheck-target: maybe-installcheck-target-libtermcap
@ -2319,7 +2308,6 @@ mostlyclean-target: maybe-mostlyclean-target-libgcc
mostlyclean-target: maybe-mostlyclean-target-libbacktrace mostlyclean-target: maybe-mostlyclean-target-libbacktrace
mostlyclean-target: maybe-mostlyclean-target-libquadmath mostlyclean-target: maybe-mostlyclean-target-libquadmath
mostlyclean-target: maybe-mostlyclean-target-libgfortran mostlyclean-target: maybe-mostlyclean-target-libgfortran
mostlyclean-target: maybe-mostlyclean-target-libobjc
mostlyclean-target: maybe-mostlyclean-target-libgo mostlyclean-target: maybe-mostlyclean-target-libgo
mostlyclean-target: maybe-mostlyclean-target-libphobos mostlyclean-target: maybe-mostlyclean-target-libphobos
mostlyclean-target: maybe-mostlyclean-target-libtermcap mostlyclean-target: maybe-mostlyclean-target-libtermcap
@ -2409,7 +2397,6 @@ clean-target: maybe-clean-target-libgcc
clean-target: maybe-clean-target-libbacktrace clean-target: maybe-clean-target-libbacktrace
clean-target: maybe-clean-target-libquadmath clean-target: maybe-clean-target-libquadmath
clean-target: maybe-clean-target-libgfortran clean-target: maybe-clean-target-libgfortran
clean-target: maybe-clean-target-libobjc
clean-target: maybe-clean-target-libgo clean-target: maybe-clean-target-libgo
clean-target: maybe-clean-target-libphobos clean-target: maybe-clean-target-libphobos
clean-target: maybe-clean-target-libtermcap clean-target: maybe-clean-target-libtermcap
@ -2499,7 +2486,6 @@ distclean-target: maybe-distclean-target-libgcc
distclean-target: maybe-distclean-target-libbacktrace distclean-target: maybe-distclean-target-libbacktrace
distclean-target: maybe-distclean-target-libquadmath distclean-target: maybe-distclean-target-libquadmath
distclean-target: maybe-distclean-target-libgfortran distclean-target: maybe-distclean-target-libgfortran
distclean-target: maybe-distclean-target-libobjc
distclean-target: maybe-distclean-target-libgo distclean-target: maybe-distclean-target-libgo
distclean-target: maybe-distclean-target-libphobos distclean-target: maybe-distclean-target-libphobos
distclean-target: maybe-distclean-target-libtermcap distclean-target: maybe-distclean-target-libtermcap
@ -2589,7 +2575,6 @@ maintainer-clean-target: maybe-maintainer-clean-target-libgcc
maintainer-clean-target: maybe-maintainer-clean-target-libbacktrace maintainer-clean-target: maybe-maintainer-clean-target-libbacktrace
maintainer-clean-target: maybe-maintainer-clean-target-libquadmath maintainer-clean-target: maybe-maintainer-clean-target-libquadmath
maintainer-clean-target: maybe-maintainer-clean-target-libgfortran maintainer-clean-target: maybe-maintainer-clean-target-libgfortran
maintainer-clean-target: maybe-maintainer-clean-target-libobjc
maintainer-clean-target: maybe-maintainer-clean-target-libgo maintainer-clean-target: maybe-maintainer-clean-target-libgo
maintainer-clean-target: maybe-maintainer-clean-target-libphobos maintainer-clean-target: maybe-maintainer-clean-target-libphobos
maintainer-clean-target: maybe-maintainer-clean-target-libtermcap maintainer-clean-target: maybe-maintainer-clean-target-libtermcap
@ -2737,7 +2722,6 @@ check-target: \
maybe-check-target-libbacktrace \ maybe-check-target-libbacktrace \
maybe-check-target-libquadmath \ maybe-check-target-libquadmath \
maybe-check-target-libgfortran \ maybe-check-target-libgfortran \
maybe-check-target-libobjc \
maybe-check-target-libgo \ maybe-check-target-libgo \
maybe-check-target-libphobos \ maybe-check-target-libphobos \
maybe-check-target-libtermcap \ maybe-check-target-libtermcap \
@ -2929,7 +2913,6 @@ install-target: \
maybe-install-target-libbacktrace \ maybe-install-target-libbacktrace \
maybe-install-target-libquadmath \ maybe-install-target-libquadmath \
maybe-install-target-libgfortran \ maybe-install-target-libgfortran \
maybe-install-target-libobjc \
maybe-install-target-libgo \ maybe-install-target-libgo \
maybe-install-target-libphobos \ maybe-install-target-libphobos \
maybe-install-target-libtermcap \ maybe-install-target-libtermcap \
@ -3039,7 +3022,6 @@ install-strip-target: \
maybe-install-strip-target-libbacktrace \ maybe-install-strip-target-libbacktrace \
maybe-install-strip-target-libquadmath \ maybe-install-strip-target-libquadmath \
maybe-install-strip-target-libgfortran \ maybe-install-strip-target-libgfortran \
maybe-install-strip-target-libobjc \
maybe-install-strip-target-libgo \ maybe-install-strip-target-libgo \
maybe-install-strip-target-libphobos \ maybe-install-strip-target-libphobos \
maybe-install-strip-target-libtermcap \ maybe-install-strip-target-libtermcap \