continuous-integration/drone Build was killed
Migrate the build toolchain from Free Pascal Compiler 2.6.4 to 3.2.2. FPC 3.2.2 requires a significantly expanded custom system unit and several syntactic adjustments across the codebase. Dockerfile: - Bump FPC_VERSION from 2.6.4 to 3.2.2 compile_sources.sh: - Replace obsolete -Op3 flag with -OpPENTIUM3 linker.script: - Add /DISCARD/ section for .init_array, .fini_array, .ctors, .dtors, .eh_frame, .gcc_except_table, and .note.GNU-stack sections emitted by FPC 3.2.2 system.pas: - Fix hresult to 'type longint' (was cardinal, incompatible with 3.2.2) - Add required types: SizeInt, SizeUInt, PtrInt, PtrUInt, NativeInt, NativeUInt, CodePointer, TTypeKind, jmp_buf, TExceptAddr, TGuid, FileRec, TextRec - Add required globals: ExceptAddrStack, ExitCode, ErrorAddr, ErrorCode, ExitProc, StackBottom, StackLength, RandSeed - Implement compilerprocs: fpc_initializeunits, fpc_do_exit, fpc_handleerror, fpc_rangeerror, fpc_overflow, fpc_divbyzero, fpc_objecterror, fpc_abstracterror, fpc_stackcheck, fpc_iocheck, fpc_pushexceptaddr, fpc_popaddrstack, fpc_setjmp (asm), fpc_longjmp (asm), fpc_shortstr_assign, fpc_mul_int64 (asm), fpc_getmem, fpc_freemem, fpc_reraise, fpc_raiseexception, fpc_catches, fpc_doneexception - Add move() procedure with FPC_MOVE alias util.pas, serial.pas: - Fix inline asm functions (getESP, inl, inw, inb, sinb) to use temp variables instead of function-name result — FPC 3.2.2 no longer allows 'MOV funcname, reg' syntax in inline asm blocks lmemorymanager.pas: - Export kalloc/kfree with public aliases (kernel_kalloc, kernel_kfree) so system.pas fpc_getmem/fpc_freemem can link to them
23 lines
801 B
Docker
23 lines
801 B
Docker
FROM ubuntu:latest
|
|
|
|
VOLUME ["/code"]
|
|
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
RUN dpkg --add-architecture i386
|
|
RUN apt-get update && apt-get install -y \
|
|
curl dos2unix wget git make nasm binutils:i386 xorriso grub-pc-bin && \
|
|
apt-get clean my room
|
|
|
|
SHELL ["/bin/bash", "-c"]
|
|
ARG FPC_VERSION=3.2.2
|
|
RUN curl -sL https://sourceforge.net/projects/freepascal/files/Linux/$FPC_VERSION/fpc-$FPC_VERSION.i386-linux.tar/download | tar -xf - && \
|
|
pushd fpc-$FPC_VERSION.i386-linux && ./install.sh && popd && \
|
|
rm -rf fpc-$FPC_VERSION.i386-linux
|
|
|
|
COPY compile.sh /compile.sh
|
|
ADD https://raw.githubusercontent.com/fsaintjacques/semver-tool/master/src/semver /usr/bin/semver
|
|
RUN chmod +x /usr/bin/semver
|
|
WORKDIR /code
|
|
RUN find . -type f -print0 | xargs -0 dos2unix
|
|
ENTRYPOINT ["/bin/bash", "-c"]
|
|
CMD ["/compile.sh"] |