commit fpc.15334 for openSUSE:Leap:15.2:Update
Hello community, here is the log from the commit of package fpc.15334 for openSUSE:Leap:15.2:Update checked in at 2020-12-21 14:22:35 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Leap:15.2:Update/fpc.15334 (Old) and /work/SRC/openSUSE:Leap:15.2:Update/.fpc.15334.new.5145 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "fpc.15334" Mon Dec 21 14:22:35 2020 rev:1 rq:856869 version:3.2.0 Changes: -------- New Changes file: --- /dev/null 2020-12-09 01:05:43.965003977 +0100 +++ /work/SRC/openSUSE:Leap:15.2:Update/.fpc.15334.new.5145/fpc.changes 2020-12-21 14:23:06.633332725 +0100 @@ -0,0 +1,276 @@ +------------------------------------------------------------------- +Fri Sep 25 10:14:45 UTC 2020 - Guillaume GARDET <guillaume.gardet@opensuse.org> + +- Add patch to fix build on ppc64le: + * fpc-fix-library-paths-on-ppc64.patch + +------------------------------------------------------------------- +Thu Sep 24 06:30:04 UTC 2020 - Dirk Mueller <dmueller@suse.com> + +- add aarch64-fpc-compilation-fix.patch: pass vfp flags to + gas +- Handle fpu initialization (bsc#1122855): + * add aarch64-fpu-initialization.patch: initialize fpu properly + * aarch64: disable bootstrap mode + +------------------------------------------------------------------- +Mon Sep 21 15:02:29 UTC 2020 - Tom de Vries <tdevries@suse.com> + +- Backport r46209 - "@PLT is needed for calls to link it properly + with pic code" [bsc#1176706]: + * fpc-si_c-x86_64-plt.patch + +------------------------------------------------------------------- +Tue Aug 18 09:00:15 UTC 2020 - Guillaume GARDET <guillaume.gardet@opensuse.org> + +- Drop '%elifarch' usage for now since it is not well supported + by the source validator, see: + https://github.com/openSUSE/obs-service-source_validator/issues/85 + +------------------------------------------------------------------- +Mon Aug 17 15:38:06 UTC 2020 - Guillaume GARDET <guillaume.gardet@opensuse.org> + +- Fix doc building when bootstrap is used + +------------------------------------------------------------------- +Mon Aug 17 15:23:42 UTC 2020 - Guillaume GARDET <guillaume.gardet@opensuse.org> + +- Fix bootstrap handling + +------------------------------------------------------------------- +Tue Jun 30 08:39:31 UTC 2020 - John Paul Adrian Glaubitz <adrian.glaubitz@suse.com> + +- Update to 3.2.0 + * Changes see https://wiki.freepascal.org/User_Changes_3.2.0 +- Enable bootstrap for aarch64, ppc, ppc64, ppc64le + * Add bootstrap binary archives + + fpc-3.2.0-aarch64.zip + + fpc-3.2.0-ppc.zip + + fpc-3.2.0-ppc64.zip + + fpc-3.2.0-ppc64le.zip +- Drop old git snapshot source for aarch64 build + * fpcbuild.zip +- Add patch to fix library paths on aarch64 + * fpc-fix-library-paths-on-aarch64.patch +- Drop patches for issues fixed upstream + * fpc-fix_aarch64.patch + * update-fpcdocs.patch + +------------------------------------------------------------------- +Wed Aug 28 17:56:57 UTC 2019 - Stefan Brüns <stefan.bruens@rwth-aachen.de> + +- Use _multibuild for building the doc subpackage. This removes e.g. + TeXLive, python and X11 from the dependency chain of the main package. +- Remove noarch for doc subpackage as we need to use %ifarch + +------------------------------------------------------------------- +Mon Aug 26 18:49:28 UTC 2019 - Stefan Brüns <stefan.bruens@rwth-aachen.de> + +- Use separate subpackages for documentation and examples, and make + both noarch. +- Make PDF documentation build reproducible +- Use tex(foo) style BuildRequires, only request what is really needed. +- Install COPYING* in licensedir +- Drop gpm and ncurses runtime requires (not used by the compiler, + but only for some of the examples). +- Remove defattr and BuildRoot from spec file. + +------------------------------------------------------------------- +Sat Mar 16 15:57:11 UTC 2019 - termim@gmail.com + +- http --> https in URL + +------------------------------------------------------------------- +Mon Sep 10 13:04:54 UTC 2018 - Guillaume GARDET <guillaume.gardet@opensuse.org> + +- Move patches and sources out of %ifarch conditions + +------------------------------------------------------------------- +Fri Sep 7 12:32:05 UTC 2018 - Guillaume GARDET <guillaume.gardet@opensuse.org> + +- Remove 'fpcsrc/packages/nvapi/nvapi.pas' due to license problems + +------------------------------------------------------------------- +Tue Sep 4 11:56:51 UTC 2018 - guillaume.gardet@opensuse.org + +- Add patch to fix aarch64 build: + * fpc-fix_aarch64.patch + +------------------------------------------------------------------- +Tue Sep 4 07:21:34 UTC 2018 - Guillaume GARDET <guillaume.gardet@opensuse.org> + +- Add aarch64 support + +------------------------------------------------------------------- +Tue May 15 12:23:06 UTC 2018 - guillaume.gardet@opensuse.org + +- Fix %arm build +- Add ExclusiveArch for %ix86 x86_64 %arm ppc ppc64 + +------------------------------------------------------------------- +Fri Dec 15 22:06:50 UTC 2017 - markus.beth@web.de + +- Update to 3.0.4 + * Changes see http://wiki.freepascal.org/User_Changes_3.0.4 + +- Added update-fpcdocs.patch to fix doc generation + +------------------------------------------------------------------- +Mon Jun 27 20:03:42 UTC 2016 - termim@gmail.com + +- Update to 3.0.0 + * remove patch fpc-2.6.2-make-user.pdf-fix.patch as fixed upstream + * use previous fpc version instead prebuild one for build + * New features see http://wiki.freepascal.org/FPC_New_Features_3.0 + * Changes see http://wiki.freepascal.org/User_Changes_3.0 + +------------------------------------------------------------------- +Tue May 06 08:57:47 UTC 2014 - guillaume@opensuse.org + +- Add ARM support + +------------------------------------------------------------------- +Mon May 5 19:17:00 UTC 2014 - mihailjp@gmail.com + +- Update to 2.6.4 - a fixes update from the 2.6.x branch + The new features include, amongst others: + * Compiler: + - Improvements and fixes for the ARM architecture + * Packages: + - New package fpindexer (indexing engine) + - Support for observer pattern added to fcl-base (and base classes in RTL) + - Lots and lots fixes and improvements for fcl-db + * Support for JSON dataset added among others + - Fixes and improvements for fcl-passrc (and fpdoc) + - Updates for PTCPas and gtk2 + - fpmkunit improvements (better support for future switch to fpmake) + - Several fixes for x11 + - Several fixes for winunits (and winceunits) + * Platforms: + - Improvements to the NativeNT target (newly introduced as alpha in 2.6.0) + - Many fixes for OpenBSD and NetBSD (considered in beta state now) + - Internal ELF writer supported for more BSD targets + - Fixes and improvements for gba and nds + +------------------------------------------------------------------- +Fri Apr 12 09:12:12 UTC 2013 - svalx@svalx.net + +- Update to 2.6.2 - a fixes update from the 2.6.x branch. + The new features include, amongst others: + * Compiler: + - Improvements and fixes for the ARM architecture + * Packages: + - New package fpindexer (indexing engine) + - Support for observer pattern added to fcl-base (and base classes in RTL) + - Lots and lots fixes and improvements for fcl-db + * Support for JSON dataset added among others + - Fixes and improvements for fcl-passrc (and fpdoc) + - Updates for PTCPas and gtk2 + - Fpmkunit improvements (better support for future switch to fpmake) + - Several fixes for x11 + - Several fixes for winunits (and winceunits) + * Platforms: + - Improvements to the NativeNT target (newly introduced as alpha in 2.6.0) + - Many fixes for OpenBSD and NetBSD (considered in beta state now) + - Internal ELF writer supported for more BSD targets + - Fixes and improvements for gba and nds +- Add fpc-2.6.2-make-user.pdf-fix.patch - fix TeX broke with error when build user.pdf + +------------------------------------------------------------------- +Sun Oct 14 17:21:30 UTC 2012 - asterios.dramis@gmail.com + +- Enabled debuginfo in all BuildArches. +- Removed gpm build requirement (not needed). +- Removed glibc runtime requirement (it's always provided). +- Fixed some rpmlint warnings "script-without-shebang". +- Added support for "build ID" in binaries (for debuginfo support). + +------------------------------------------------------------------- +Wed Oct 3 18:03:43 UTC 2012 - asterios.dramis@gmail.com + +- Added texlive-float as build requirement to fix compilation in Factory. + Removed texlive-collection-basic (not needed anymore). + +------------------------------------------------------------------- +Sun Sep 16 22:18:56 UTC 2012 - termim@gmail.com + +- Update to 2.6.0 - a new major version of the Free Pascal compiler. ++++ 79 more lines (skipped) ++++ between /dev/null ++++ and /work/SRC/openSUSE:Leap:15.2:Update/.fpc.15334.new.5145/fpc.changes New: ---- _multibuild aarch64-fpc-compilation-fix.patch aarch64-fpu-initialization.patch fpc-3.2.0-aarch64.zip fpc-3.2.0-ppc.zip fpc-3.2.0-ppc64.zip fpc-3.2.0-ppc64le.zip fpc-fix-library-paths-on-aarch64.patch fpc-fix-library-paths-on-ppc64.patch fpc-rpmlintrc fpc-si_c-x86_64-plt.patch fpc.changes fpc.spec fpcbuild-3.2.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ fpc.spec ++++++ # # spec file for package fpc # # Copyright (c) 2020 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via https://bugs.opensuse.org/ # %global flavor @BUILD_FLAVOR@%{nil} %if "%{flavor}" == "" %else %global psuffix -%{flavor} %endif %ifarch ppc64le ppc64 ppc # Bootstrap the compiler for a new architecture. Set this to 0 after we've bootstrapped. %bcond_without bootstrap %else %bcond_with bootstrap %endif %ifarch %arm # We use hardfloat on ARM %define fpcopt -dFPC_ARMHF -k--build-id -k-z -knoexecstack %else %ifarch ppc64le %define fpcopt -Cb- -Caelfv2 -k--build-id -k-z -knoexecstack %else %define fpcopt -k--build-id -k-z -knoexecstack %endif %endif %define fpcdebugopt -gl %ifarch aarch64 %define ppcname ppca64 %endif %ifarch %arm %define ppcname ppcarm %endif %ifarch ppc %define ppcname ppcppc %endif %ifarch x86_64 %define ppcname ppcx64 %endif %ifarch ppc64le %define ppcname ppcppc64 %endif %ifarch ppc64 %define ppcname ppcppc64 %endif %ifarch %ix86 %define ppcname ppc386 %endif Name: fpc%{?psuffix} Version: 3.2.0 Release: 0 %if "%{flavor}" == "" Summary: Free Pascal Compiler License: GPL-2.0-or-later AND LGPL-2.1-or-later Group: Documentation/Other %else Summary: Freepascal Compiler documentation License: GPL-2.0-or-later AND LGPL-2.1-or-later Group: Documentation/Other %endif URL: https://www.freepascal.org/ Source: fpcbuild-%{version}.tar.gz Source1: fpc-3.2.0-aarch64.zip Source2: fpc-3.2.0-ppc64le.zip Source3: fpc-3.2.0-ppc64.zip Source4: fpc-3.2.0-ppc.zip Source90: fpc-rpmlintrc Patch0: fpc-fix-library-paths-on-aarch64.patch Patch1: fpc-si_c-x86_64-plt.patch Patch2: aarch64-fpc-compilation-fix.patch # From https://github.com/graemeg/freepascal/commit/aad68409bec902e39f9292930238edd... Patch3: aarch64-fpu-initialization.patch Patch4: fpc-fix-library-paths-on-ppc64.patch BuildRequires: binutils %if 0%{?suse_version} BuildRequires: fdupes %endif %if %{without bootstrap} BuildRequires: fpc %else %if "%{flavor}" == "doc" BuildRequires: fpc %else BuildRequires: unzip %endif %endif BuildRequires: glibc-devel %if "%{flavor}" == "doc" BuildRequires: texlive-latex BuildRequires: texlive-makeindex BuildRequires: texlive-pdftex BuildRequires: texlive-ucs BuildRequires: tex(8r.enc) BuildRequires: tex(a4.sty) BuildRequires: tex(enumitem.sty) BuildRequires: tex(fancyhdr.sty) BuildRequires: tex(float.sty) BuildRequires: tex(hyperref.sty) BuildRequires: tex(pcrr8t.tfm) BuildRequires: tex(phvr8t.tfm) BuildRequires: tex(ptmr8t.tfm) BuildRequires: tex(syntax.sty) BuildRequires: tex(tabularx.sty) BuildRequires: tex(times.sty) %endif Requires: binutils ExclusiveArch: %ix86 x86_64 %arm aarch64 ppc ppc64 ppc64le %if "%{flavor}" == "" %description Freepascal is a free 32/64bit Pascal Compiler. It comes with a run-time library and is fully compatible with Turbo Pascal 7.0 and nearly Delphi compatible. Some extensions are added to the language, like function overloading and generics. Shared libraries can be linked. This package contains commandline compiler and utils. Provided units are the runtime library (RTL), free component library (FCL) and the base and extra packages. %else %description The fpc-doc package contains the documentation PDF files. %endif %package examples Summary: Freepascal Compiler examples Group: Documentation/Other BuildArch: noarch %description examples The fpc-examples package contains examples for Freepascal. %package src Summary: Freepascal Compiler - sources Group: Development/Languages/Other %description src The fpc-src package contains the sources of Freepascal, for documentation or automatical-code generation purposes. %prep %setup -q -n fpcbuild-%{version} %patch0 -p1 %patch1 -p0 %patch2 -p1 %patch3 -p1 %patch4 -p1 %if %{with bootstrap} %if "%{flavor}" == "" %ifarch aarch64 unzip %{SOURCE1} %endif %ifarch ppc64le unzip %{SOURCE2} %endif %ifarch ppc64 unzip %{SOURCE3} %endif %ifarch ppc unzip %{SOURCE4} %endif %endif %endif # Remove files with license problems (which are not used on Linux) rm -f fpcsrc/packages/nvapi/src/nvapi.pas # Copy needed source files by external packages in a new directory (to be included in the fpc-src subpackage) install -dm 0755 fpc-src cp -a fpcsrc/rtl fpc-src cp -a fpcsrc/packages fpc-src find fpc-src -name '*.o' | xargs rm -f rm -rf fpc-src/packages/extra/amunits rm -rf fpc-src/packages/extra/winunits # Inject reproducible date into PDF documentation date --date=@${SOURCE_DATE_EPOCH:-0} +'\date{%B %Y}' > fpcdocs/date.inc %build %if "%{flavor}" == "" %if %{with bootstrap} STARTPP=$(pwd)/fpc-%{version}-%{_arch}/bin/%{ppcname} %else STARTPP=%{ppcname} %endif pushd fpcsrc FPCDIR= NEWPP=`pwd`/compiler/%{ppcname} make %{?_smp_mflags} compiler_cycle FPC=${STARTPP} OPT='%{fpcopt} %{fpcdebugopt}' make %{?_smp_mflags} rtl_clean rtl_smart FPC=${NEWPP} OPT='%{fpcopt}' make %{?_smp_mflags} packages_smart \ FPC=${NEWPP} OPT='%{fpcopt}' make %{?_smp_mflags} utils_all \ FPC=${NEWPP} OPT='%{fpcopt} %{fpcdebugopt}' popd %else make -C fpcdocs pdf FPC=fpc %endif %install # Make available built binaries %if "%{flavor}" == "" export PATH=$PATH:%{buildroot}%{_bindir} pushd fpcsrc FPCDIR= NEWPP=`pwd`/compiler/%{ppcname} INSTALLOPTS="FPC=${NEWPP} \ INSTALL_PREFIX=%{buildroot}%{_prefix} \ INSTALL_LIBDIR=%{buildroot}%{_libdir} \ INSTALL_BASEDIR=%{buildroot}%{_libdir}/%{name}/%{version} \ CODPATH=%{buildroot}%{_libdir}/%{name}/lexyacc \ INSTALL_DOCDIR=%{buildroot}%{_defaultdocdir}/%{name} \ INSTALL_BINDIR=%{buildroot}%{_bindir} INSTALL_EXAMPLEDIR=%{buildroot}%{_defaultdocdir}/%{name}/examples" make compiler_distinstall ${INSTALLOPTS} make utils_distinstall ${INSTALLOPTS} make rtl_distinstall ${INSTALLOPTS} make packages_distinstall ${INSTALLOPTS} popd pushd install make -C doc ${INSTALLOPTS} make -C man ${INSTALLOPTS} INSTALL_MANDIR=%{buildroot}%{_mandir} popd # create link ln -sf ../%{_lib}/%{name}/%{version}/%{ppcname} %{buildroot}%{_bindir}/%{ppcname} # create a version independent config FPCMKCFGBIN=%{buildroot}%{_prefix}/bin/fpcmkcfg FPCPATH=%{_libdir}/fpc/`$NEWPP -iV` SYSFPDIRBASE=%{buildroot}%{_libdir}/fpc/`$NEWPP -iV`/ide/text ${FPCMKCFGBIN} -p -d "basepath=$FPCPATH" -o %{buildroot}%{_sysconfdir}/fpc.cfg ${FPCMKCFGBIN} -p -1 -d "basepath=$FPCPATH" -o ${SYSFPDIRBASE}/fp.cfg ${FPCMKCFGBIN} -p -2 -o ${SYSFPDIRBASE}/fp.ini ${FPCMKCFGBIN} -p -3 -d CompilerConfigDir=%{_sysconfdir}/fppkg -o %{buildroot}%{_sysconfdir}/fppkg.cfg ${FPCMKCFGBIN} -p -4 -d "GlobalPrefix=$FPCGLOBALPREFIX" -o %{buildroot}%{_sysconfdir}/fppkg/default # Add support for "build ID" in binaries (for debuginfo support) echo -e \ "\n# ----------------------\n\ # Use BuildId by default\n\ # ----------------------\n\ -k--build-id" >> %{buildroot}%{_sysconfdir}/fpc.cfg # include the COPYING-information for the compiler/rtl/fcl in the documentation install -m 644 -D fpcsrc/compiler/COPYING.txt %{buildroot}%{_licensedir}/%{name}/COPYING install -m 644 -D fpcsrc/rtl/COPYING.txt %{buildroot}%{_licensedir}/%{name}/COPYING.rtl install -m 644 -D fpcsrc/rtl/COPYING.FPC %{buildroot}%{_licensedir}/%{name}/COPYING.FPC mv %{buildroot}%{_defaultdocdir}/%{name}/../../%{name}-%{version}/ide/readme.ide %{buildroot}%{_defaultdocdir}/%{name}/readme.ide mv %{buildroot}%{_defaultdocdir}/%{name}/../../%{name}-%{version} %{buildroot}%{_defaultdocdir}/%{name}/examples # Install source files needed by external packages cp -a fpc-src/ %{buildroot}%{_datadir}/fpcsrc/ # delete lexyacc rm -rf %{buildroot}%{_libdir}/%{name}/lexyacc chmod 755 %{buildroot}%{_datadir}/fpcsrc/packages/ibase/scripts/mkdb chmod 644 %{buildroot}%{_datadir}/fpcsrc/packages/iconvenc/src/iconvenc.pas chmod 644 %{buildroot}%{_datadir}/fpcsrc/packages/iconvenc/examples/iconvtest.pp chmod 755 %{buildroot}%{_datadir}/fpcsrc/packages/libc/scripts/h2p chmod 755 %{buildroot}%{_datadir}/fpcsrc/packages/mysql/scripts/rmdb chmod 755 %{buildroot}%{_datadir}/fpcsrc/packages/postgres/scripts/mkdb chmod 755 %{buildroot}%{_datadir}/fpcsrc/packages/postgres/scripts/rmdb chmod 755 %{buildroot}%{_datadir}/fpcsrc/packages/xforms/scripts/doc2p chmod 755 %{buildroot}%{_datadir}/fpcsrc/rtl/freebsd/*/identpatch.sh chmod 755 %{buildroot}%{_datadir}/fpcsrc/rtl/netware/convertimp %if 0%{?suse_version} %fdupes -s %{buildroot}%{_datadir}/fpcsrc %fdupes -s %{buildroot}%{_libdir}/%{name} %endif %else make -C fpcdocs pdfinstall \ FPC=fpc \ INSTALL_DOCDIR=%{buildroot}%{_defaultdocdir}/fpc %endif %if "%{flavor}" == "" %files %license %{_licensedir}/%{name} %dir %{_defaultdocdir}/%{name}/ %doc %{_defaultdocdir}/%{name}/NEWS %doc %{_defaultdocdir}/%{name}/README %doc %{_defaultdocdir}/%{name}/readme.ide %doc %{_defaultdocdir}/%{name}/faq* %doc %{_mandir}/*/* %config(noreplace) %{_sysconfdir}/%{name}.cfg %config(noreplace) %{_sysconfdir}/fppkg.cfg %dir %{_sysconfdir}/fppkg %config(noreplace) %{_sysconfdir}/fppkg/default %{_bindir}/* %{_libdir}/libpas2jslib.so* %{_libdir}/%{name}/ %ifarch x86_64 aarch64 ppc64 ppc64le /usr/lib/%{name}/ %endif %files examples %docdir %{_defaultdocdir}/%{name} %dir %{_defaultdocdir}/%{name}/examples %doc %{_defaultdocdir}/%{name}/examples/* %files src %dir %{_datadir}/fpcsrc %{_datadir}/fpcsrc/* %else %files %docdir %{_defaultdocdir}/fpc %doc %{_defaultdocdir}/fpc/*.pdf %endif %changelog ++++++ _multibuild ++++++ <multibuild> <package>doc</package> </multibuild> ++++++ aarch64-fpc-compilation-fix.patch ++++++ --- fpcbuild-3.2.0/fpcsrc/compiler/arm/agarmgas.pas (Revision 46921) +++ fpcbuild-3.2.0/fpcsrc/compiler/arm/agarmgas.pas (Revision 46922) @@ -105,6 +105,12 @@ result:=inherited MakeCmdLine; if (current_settings.fputype = fpu_soft) then result:='-mfpu=softvfp '+result; + if (current_settings.fputype = fpu_fpa) then + result:='-mfpu=fpa '+result; + if (current_settings.fputype = fpu_fpa10) then + result:='-mfpu=fpa10 '+result; + if (current_settings.fputype = fpu_fpa11) then + result:='-mfpu=fpa11 '+result; if (current_settings.fputype = fpu_vfpv2) then result:='-mfpu=vfpv2 '+result; if (current_settings.fputype = fpu_vfpv3) then ++++++ aarch64-fpu-initialization.patch ++++++ --- fpcbuild-3.2.0/fpcsrc/compiler/aarch64/cgcpu.pas 2018-12-13 19:27:26.000000000 +0100 +++ fpcbuild-3.2.0/fpcsrc/compiler/aarch64/cgcpu.pas 2020-09-24 09:53:53.047492225 +0200 @@ -980,6 +980,7 @@ { Notify the register allocator that we have written a move instruction so it can try to eliminate it. } add_move_instruction(instr); + { FMOV cannot generate a floating point exception } end else begin --- fpcbuild-3.2.0/fpcsrc/rtl/aarch64/aarch64.inc 2015-02-23 23:54:03.000000000 +0100 +++ fpcbuild-3.2.0/fpcsrc/rtl/aarch64/aarch64.inc 2020-09-24 13:52:50.744053033 +0200 @@ -50,26 +50,46 @@ mrs x0,fpsr end; +const + FPSR_IOC = 1; + FPSR_DZC = 1 shl 1; + FPSR_OFC = 1 shl 2; + FPSR_UFC = 1 shl 3; + FPSR_IXC = 1 shl 4; + FPSR_IDC = 1 shl 7; + FPSR_EXCEPTIONS = FPSR_IOC or FPSR_DZC or FPSR_OFC or FPSR_UFC or FPSR_IXC or FPSR_IDC; procedure setfpsr(val: dword); nostackframe; assembler; asm msr fpsr, x0 end; - -procedure fpc_enable_fpu_exceptions; +{$define FPC_SYSTEM_HAS_SYSINITFPU} +procedure SysInitFPU; begin + softfloat_rounding_mode:=rmNearest; + { 0 is rmNearest } + setfpcr(getfpcr and $ff3fffff); { clear all "exception happened" flags we care about} - setfpsr(getfpsr and not(fpu_exception_mask shr fpu_exception_mask_to_status_mask_shift)); - { enable invalid operations and division by zero exceptions. } - setfpcr(getfpcr or fpu_exception_mask); + setfpsr(getfpsr and not(fpu_exception_mask shr fpu_exception_mask_to_status_mask_shift)); + { enable invalid operations and division by zero exceptions. } + setfpcr(((getfpcr and not(fpu_exception_mask)) or fpu_dze or fpu_ofe or fpu_ioe)); + softfloat_exception_mask:=[float_flag_underflow,float_flag_inexact,float_flag_denormal]; + softfloat_exception_flags:=[]; end; +{$define FPC_SYSTEM_HAS_SYSRESETFPU} +Procedure SysResetFPU;{$ifdef SYSTEMINLINE}inline;{$endif} +begin + softfloat_exception_flags:=[]; + setfpsr(getfpsr and not(FPSR_EXCEPTIONS)); +end; + procedure fpc_cpuinit; begin { don't let libraries influence the FPU cw set by the host program } if not IsLibrary then - fpc_enable_fpu_exceptions; + SysInitFPU; end; ++++++ fpc-fix-library-paths-on-aarch64.patch ++++++ diff -Nru fpcbuild-3.2.0.orig/fpcsrc/compiler/systems/t_linux.pas fpcbuild-3.2.0/fpcsrc/compiler/systems/t_linux.pas --- fpcbuild-3.2.0.orig/fpcsrc/compiler/systems/t_linux.pas 2019-12-05 21:11:43.000000000 +0100 +++ fpcbuild-3.2.0/fpcsrc/compiler/systems/t_linux.pas 2020-06-25 18:33:04.362536867 +0200 @@ -142,8 +142,15 @@ LibrarySearchPath.AddLibraryPath(sysrootpath,'=/lib64;=/usr/lib64;=/usr/X11R6/lib64',true) else LibrarySearchPath.AddLibraryPath(sysrootpath,'=/lib64;=/usr/lib/powerpc64le-linux-gnu;=/usr/X11R6/powerpc64le-linux-gnu',true); -{$else powerpc64} +{$else} +{$ifdef aarch64} + LibrarySearchPath.AddLibraryPath(sysrootpath,'=/usr/lib',true); + LibrarySearchPath.AddLibraryPath(sysrootpath,'=/lib',true); + LibrarySearchPath.AddLibraryPath(sysrootpath,'=/usr/lib64',true); + LibrarySearchPath.AddLibraryPath(sysrootpath,'=/lib64',true); +{$else} LibrarySearchPath.AddLibraryPath(sysrootpath,'=/lib;=/usr/lib;=/usr/X11R6/lib',true); +{$endif aarch64} {$endif powerpc64} {$endif x86_64} @@ -223,7 +230,7 @@ {$endif arm} {$ifdef aarch64} -const defdynlinker='/lib/ld-linux-aarch64.so.1'; +const defdynlinker='/lib64/ld-linux-aarch64.so.1'; {$endif aarch64} {$ifdef mips} ++++++ fpc-fix-library-paths-on-ppc64.patch ++++++ --- fpcbuild-3.2.0/fpcsrc/compiler/systems/t_linux.pas.orig 2020-09-25 07:43:31.880558566 +0000 +++ fpcbuild-3.2.0/fpcsrc/compiler/systems/t_linux.pas 2020-09-25 07:55:16.789263339 +0000 @@ -141,7 +141,7 @@ begin if target_info.abi<>abi_powerpc_elfv2 then LibrarySearchPath.AddLibraryPath(sysrootpath,'=/lib64;=/usr/lib64;=/usr/X11R6/lib64',true) else - LibrarySearchPath.AddLibraryPath(sysrootpath,'=/lib64;=/usr/lib/powerpc64le-linux-gnu;=/usr/X11R6/powerpc64le-linux-gnu',true); + LibrarySearchPath.AddLibraryPath(sysrootpath,'=/lib64;=/usr/lib64;=/usr/X11R6/lib64',true); {$else} {$ifdef aarch64} LibrarySearchPath.AddLibraryPath(sysrootpath,'=/usr/lib',true); ++++++ fpc-rpmlintrc ++++++ addFilter("statically-linked-binary") addFilter("shlib-policy-name-error") addFilter("devel-file-in-non-devel-package .*/fpc/.*/units/.*-linux/.*.a") addFilter("devel-file-in-non-devel-package .*/fpcsrc/.*/.*.a") addFilter("devel-file-in-non-devel-package .*/fpcsrc/.*/.*.c") addFilter("devel-file-in-non-devel-package .*/fpcsrc/.*/.*.cpp") addFilter("devel-file-in-non-devel-package .*/fpcsrc/.*/.*.h") ++++++ fpc-si_c-x86_64-plt.patch ++++++ Index: fpcsrc/rtl/linux/x86_64/si_c.inc =================================================================== --- fpcsrc/rtl/linux/x86_64/si_c.inc (revision 46208) +++ fpcsrc/rtl/linux/x86_64/si_c.inc (revision 46209) @@ -86,7 +86,7 @@ { start the program } xorq %rbp,%rbp - call PASCALMAIN + call PASCALMAIN@PLT {$endif FPC_HAS_INDIRECT_ENTRY_INFORMATION} hlt end; @@ -162,7 +162,7 @@ { Call the user's main function, and exit with its value. But let the libc call main. } - call libc_start_main + call libc_start_main@PLT hlt { Crash if somehow `exit' does return. } end;
participants (1)
-
User for buildservice source handling