I think the main question for (not) dropping support is the LTS for Ubuntu
and RHEL. It looks like Ubuntu 16.04 just dropped out of standard support,
so we can probably drop support for the default there, now.

https://wiki.ubuntu.com/Releases

TBH, I can't really tell what's currently supported for RHEL. I think 7 is
nearing the end of "normal" support. Someone else can try to decipher the
documentation :).

https://access.redhat.com/support/policy/updates/errata

Jason

On Thu, May 13, 2021 at 4:08 PM Gabe Black via gem5-dev <gem5-dev@gem5.org>
wrote:

> If we were willing to bump clang support all the way up to version 9 (a
> big leap, released 19 September 2019) we would get support for
> __builtin_LINE and __builtin_FILE, which are there to support
> std::source_location which is a c++20 feature but which can be used without
> enabling c++20. That would be really helpful in turning macros which
> capture file/line information like panic() and warn() into normal functions.
>
> Gabe
>
> On Thu, May 13, 2021 at 3:58 PM Gabe Black <gabe.bl...@gmail.com> wrote:
>
>> I have no objection to moving the compiler versions up. I don't really
>> know what benchmark we use to decide when that's ok to do. If we do move
>> up, it would be nice to move to a version which would let us use c++17.
>>
>> For gcc, the oldest version with any support is 5, there seems to be
>> pretty solid support by version 7, pretty much complete compiler support by
>> 8, pretty much complete library support by 9, and it's the default version
>> by 11. If we remove support for 5 and 6, I think that might bring us into
>> position to use c++17 with 7, and I think if we move to 8 it's pretty safe.
>>
>> Version 5.2 was released on July 16, 2015
>> Version 7.3 was released on January 25, 2018
>> Version 8.1 was released on May 2, 2018
>> Version 11.1 was released very recently on  April 27, 2021.
>>
>> For clang, it seems to be a little more straightforward, and we'd just
>> need version 5. This was released on 7 September 2017.
>>
>> So, with no other data points, I'd vote for updating to gcc version 7.3
>> (or just 7+), and clang 5, and then enabling c++17.
>>
>>
>> https://en.cppreference.com/w/cpp/compiler_support/17
>> https://www.gnu.org/software/gcc/projects/cxx-status.html#cxx17
>> https://clang.llvm.org/cxx_status.html
>> https://en.wikipedia.org/wiki/Clang#Status_history
>> https://gcc.gnu.org/releases.html
>>
>> On Thu, May 13, 2021 at 1:43 PM Bobby Bruce via gem5-dev <
>> gem5-dev@gem5.org> wrote:
>>
>>> These two patchset should fix most of this:
>>> https://gem5-review.googlesource.coThism/c/public/gem5/+/45479
>>> <https://gem5-review.googlesource.com/c/public/gem5/+/45479>,
>>> https://gem5-review.googlesource.com/c/public/gem5/+/45481
>>>
>>> Unfortunately, we currently can't compile with GCC 5 as deprecation of
>>> enum values were only introduced in GCC 6. So this change is problematic:
>>> https://gem5.googlesource.com/public/gem5/+/6d7c3afcd44843fb93578d63ad1f5401906d17ad/src/sim/aux_vector.hh#100,
>>> and will continue to break the compilation tests.
>>>
>>> Perhaps this is worthy of discussion: how long do we want to continue
>>> supporting GCC 5? What's our policy here? The GCC 5 and 6 release series
>>> are no longer supported, but I wouldn't go as far to say these are old
>>> compilers completely unused in the wider world.
>>>
>>> --
>>> Dr. Bobby R. Bruce
>>> Room 3050,
>>> Kemper Hall, UC Davis
>>> Davis,
>>> CA, 95616
>>>
>>> web: https://www.bobbybruce.net
>>>
>>>
>>> On Tue, May 11, 2021 at 11:45 PM jenkins-no-reply--- via gem5-dev <
>>> gem5-dev@gem5.org> wrote:
>>>
>>>> See <
>>>> https://jenkins.gem5.org/job/compiler-checks/72/display/redirect?page=changes
>>>> >
>>>>
>>>> Changes:
>>>>
>>>> [shingarov] arch-power: Fix precedence of register operands
>>>>
>>>> [shingarov] arch-power: Add fields for DS form instructions
>>>>
>>>> [m] arch-x86: Implement ACPI root tables
>>>>
>>>> [m] arch-x86: Add ACPI support for MADT
>>>>
>>>> [m] configs: Use MADT in x86 full system simulation
>>>>
>>>> [shingarov] arch-power: Refactor load-store instructions
>>>>
>>>> [gabe.black] arch,cpu: Rename arch/registers.hh to arch/vecregs.hh.
>>>>
>>>> [gabe.black] tests: Delete the nmtest "UnitTest".
>>>>
>>>> [gabe.black] tests: Remove the stattest "UnitTest".
>>>>
>>>> [gabe.black] misc: Delete the unittest/genini.py script.
>>>>
>>>> [gabe.black] scons,tests: Delete support for the UnitTest scons
>>>> class/function.
>>>>
>>>> [gabe.black] arch-x86: Fix x86 build.
>>>>
>>>> [gabe.black] arch-x86: Let individual reg uops specialize their
>>>> arguments.
>>>>
>>>> [gabe.black] arch-x86: Factor out duplication in the new RegOp base
>>>> classes.
>>>>
>>>> [gabe.black] arch-x86: Generalize the RegOp operands.
>>>>
>>>> [gabe.black] arch-x86: Use the new op bases for memory microops.
>>>>
>>>> [gabe.black] arch-x86: Remove static code from debug.isa and fix style.
>>>>
>>>> [gabe.black] arch-x86: Use the *Op classes with FP microops.
>>>>
>>>> [gabe.black] arch-x86: Use the newly flexible RegOpT to implement the
>>>> limm uop.
>>>>
>>>> [gabe.black] arch-x86: Correct style and use uop args in specop.isa.
>>>>
>>>> [gabe.black] arch-x86: Fix style and use uop args in seqop.isa.
>>>>
>>>> [gabe.black] arch-x86: Style fixes and use uop args in the media ops.
>>>>
>>>> [gabe.black] arch-x86: Use regIdx() instead of creating an InstRegIndex
>>>> directly.
>>>>
>>>> [gabe.black] arch-x86: Eliminate the DependenceTags in registers.hh.
>>>>
>>>> [gabe.black] arch-x86: Create a separate type for floating point reg
>>>> idxs.
>>>>
>>>> [gabe.black] arch-x86: Specialize the remaining operand types for uops.
>>>>
>>>> [gabe.black] arch: Delete a few unused vector register types/constants.
>>>>
>>>> [gabe.black] arch-x86: Make pick, signedPick and merge take indexes
>>>> directly.
>>>>
>>>> [gabe.black] arch-x86: Use the new multiplication helpers in the mul
>>>> uops.
>>>>
>>>> [gabe.black] arch-x86: Move the step division helper out of the ISA
>>>> desc.
>>>>
>>>> [gabe.black] arch-x86: Get rid of the now unused print(Src|Dest)Reg
>>>> methods.
>>>>
>>>> [gabe.black] base: Add macros to mark things as deprecated.
>>>>
>>>> [gabe.black] base: Mark the unused DPRINTF_UNCONDITIONAL macro as
>>>> deprecated.
>>>>
>>>> [gabe.black] base,arch,dev,mem: Always compile DPRINTFs, even if
>>>> they're disabled.
>>>>
>>>> [gabe.black] base: Collapse the DTRACE macro in DPRINTF.
>>>>
>>>> [gabe.black] base: Simplify the definition of DTRACE.
>>>>
>>>> [Giacomo Travaglini] arch-arm: Fix SMM* instructions
>>>>
>>>> [gabe.black] base,python: Simplify how we check if a debug flag is
>>>> enabled.
>>>>
>>>> [gabe.black] base: Move TRACING_ON check into Flag::tracing().
>>>>
>>>> [gabe.black] misc: Collapse all uses of DTRACE(x) to Debug::x.
>>>>
>>>> [gabe.black] base,arch-sparc: Overhaul the small fenv wrapper in base.
>>>>
>>>> [gabe.black] arch-arm: Use src/base/fenv.hh instead of raw fenv.h.
>>>>
>>>> [gabe.black] cpu: Delete an unnecessary return in RegId::flatIndex.
>>>>
>>>> [gabe.black] arch,cpu: Get rid of is*Reg() methods in RegId.
>>>>
>>>> [gabe.black] cpu: Get rid of the unused NumRegClasses constant.
>>>>
>>>> [gabe.black] cpu: Get rid of the redundant PhysRegIndex type.
>>>>
>>>> [gabe.black] scons,misc: Remove the ability to disable some trivial
>>>> features.
>>>>
>>>> [gabe.black] scons: Pull builder definitions out of SConstruct.
>>>>
>>>> [gabe.black] scons: Simplify finding the python lib with ParseConfig.
>>>>
>>>> [gabe.black] scons: Update comments in SConstruct.
>>>>
>>>> [gabe.black] python: Collapse away the now unused readCommandWithReturn
>>>> function.
>>>>
>>>> [gabe.black] python,scons: Move readCommand and compareVersions into
>>>> site_scons.
>>>>
>>>> [gabe.black] arch-x86: Clean up x86 integer indexes.
>>>>
>>>> [gabe.black] arch-x86: Create some infrastructure for x86 microop
>>>> operands.
>>>>
>>>> [gabe.black] arch: Set %(op_idx)s properly when predicated operands are
>>>> present.
>>>>
>>>> [gabe.black] arch-x86: Build source picking into the operands.
>>>>
>>>> [gabe.black] dev: Overload swap_bytes, don't specialize the template.
>>>>
>>>> [gabe.black] sim: Use type_traits to steer swap_bytes.
>>>>
>>>> [gabe.black] base: Move the macros in compiler.hh to a GEM5_ prefix.
>>>>
>>>> [gabe.black] misc: Replace M5_VAR_USED with GEM5_VAR_USED.
>>>>
>>>> [gabe.black] misc: Replace M5_NODISCARD with GEM5_NO_DISCARD.
>>>>
>>>> [gabe.black] misc: Replace M5_FALLTHROUGH with GEM5_FALLTHROUGH.
>>>>
>>>> [gabe.black] misc: Replace M5_ATTR_PACKED with GEM5_PACKED.
>>>>
>>>> [gabe.black] arch-sparc: Replace M5_NO_INLINE with GEM5_NO_INLINE.
>>>>
>>>> [gabe.black] misc: Replace M5_LOCAL and M5_WEAK with GEM5_LOCAL and
>>>> GEM5_WEAK.
>>>>
>>>> [gabe.black] misc: Replace M5_ALIGNED with GEM5_ALIGNED.
>>>>
>>>> [gabe.black] misc: Replace M5_UNREACHABLE with GEM5_UNREACHABLE.
>>>>
>>>> [gabe.black] base: Replace M5_UNLIKELY with GEM5_UNLIKELY.
>>>>
>>>> [gabe.black] misc: Replace M5_FOR_EACH_IN_PACK with
>>>> GEM5_FOR_EACH_IN_PACK.
>>>>
>>>> [gabe.black] misc: Replace M5_CLASS_VAR_USED with GEM5_CLASS_VAR_USED.
>>>>
>>>> [gabe.black] sim: Deprecate M5_AT_* constants.
>>>>
>>>> [gabe.black] arch: Stop using deprecated M5_AT_* constants.
>>>>
>>>>
>>>> ------------------------------------------
>>>> Started by timer
>>>> Running as SYSTEM
>>>> Building in workspace <https://jenkins.gem5.org/job/compiler-checks/ws/
>>>> >
>>>> Selected Git installation does not exist. Using Default
>>>> The recommended git tool is: NONE
>>>> No credentials specified
>>>> Cloning the remote Git repository
>>>> Cloning repository https://gem5.googlesource.com/public/gem5
>>>>  > git init <https://jenkins.gem5.org/job/compiler-checks/ws/> #
>>>> timeout=10
>>>> Fetching upstream changes from
>>>> https://gem5.googlesource.com/public/gem5
>>>>  > git --version # timeout=10
>>>>  > git --version # 'git version 2.25.1'
>>>>  > git fetch --tags --force --progress --
>>>> https://gem5.googlesource.com/public/gem5
>>>> +refs/heads/*:refs/remotes/origin/* # timeout=10
>>>>  > git config remote.origin.url
>>>> https://gem5.googlesource.com/public/gem5 # timeout=10
>>>>  > git config --add remote.origin.fetch
>>>> +refs/heads/*:refs/remotes/origin/* # timeout=10
>>>> Avoid second fetch
>>>>  > git rev-parse refs/remotes/origin/develop^{commit} # timeout=10
>>>> Checking out Revision b1a396bfcfa66e05f28475758edb3e16e53c5047
>>>> (refs/remotes/origin/develop)
>>>>  > git config core.sparsecheckout # timeout=10
>>>>  > git checkout -f b1a396bfcfa66e05f28475758edb3e16e53c5047 # timeout=10
>>>> Commit message: "arch: Stop using deprecated M5_AT_* constants."
>>>>  > git rev-list --no-walk 808056ce4e2c56415062e0a455851c1bedc8d9cd #
>>>> timeout=10
>>>> [compiler-checks] $ /bin/sh -xe /tmp/jenkins1137832772359858327.sh
>>>> + ./util/compiler-tests.sh -j 12
>>>> Starting build tests with 'gcc-version-10'...
>>>> 'gcc-version-10' was found in the comprehensive tests. All ISAs will be
>>>> built.
>>>>   * Building target 'NULL_MOESI_CMP_directory.opt' with
>>>> 'gcc-version-10'...
>>>>     Done.
>>>>   * Building target 'NULL_MOESI_CMP_directory.fast' with
>>>> 'gcc-version-10'...
>>>>     Done.
>>>>   * Building target 'ARM.opt' with 'gcc-version-10'...
>>>>     Done.
>>>>   * Building target 'ARM.fast' with 'gcc-version-10'...
>>>>   ! Failed with exit code 2.
>>>>   * Building target 'Garnet_standalone.opt' with 'gcc-version-10'...
>>>>     Done.
>>>>   * Building target 'Garnet_standalone.fast' with 'gcc-version-10'...
>>>>     Done.
>>>>   * Building target 'ARM_MESI_Three_Level.opt' with 'gcc-version-10'...
>>>>     Done.
>>>>   * Building target 'ARM_MESI_Three_Level.fast' with 'gcc-version-10'...
>>>>   ! Failed with exit code 2.
>>>>   * Building target 'NULL_MOESI_hammer.opt' with 'gcc-version-10'...
>>>>     Done.
>>>>   * Building target 'NULL_MOESI_hammer.fast' with 'gcc-version-10'...
>>>>     Done.
>>>>   * Building target 'X86.opt' with 'gcc-version-10'...
>>>>     Done.
>>>>   * Building target 'X86.fast' with 'gcc-version-10'...
>>>>     Done.
>>>>   * Building target 'POWER.opt' with 'gcc-version-10'...
>>>>     Done.
>>>>   * Building target 'POWER.fast' with 'gcc-version-10'...
>>>>     Done.
>>>>   * Building target 'X86_MOESI_AMD_Base.opt' with 'gcc-version-10'...
>>>>     Done.
>>>>   * Building target 'X86_MOESI_AMD_Base.fast' with 'gcc-version-10'...
>>>>     Done.
>>>>   * Building target 'NULL_MOESI_CMP_token.opt' with 'gcc-version-10'...
>>>>     Done.
>>>>   * Building target 'NULL_MOESI_CMP_token.fast' with 'gcc-version-10'...
>>>>     Done.
>>>>   * Building target 'RISCV.opt' with 'gcc-version-10'...
>>>>     Done.
>>>>   * Building target 'RISCV.fast' with 'gcc-version-10'...
>>>>     Done.
>>>>   * Building target 'GCN3_X86.opt' with 'gcc-version-10'...
>>>>     Done.
>>>>   * Building target 'GCN3_X86.fast' with 'gcc-version-10'...
>>>>   ! Failed with exit code 2.
>>>>   * Building target 'MIPS.opt' with 'gcc-version-10'...
>>>>     Done.
>>>>   * Building target 'MIPS.fast' with 'gcc-version-10'...
>>>>     Done.
>>>>   * Building target 'NULL_MESI_Two_Level.opt' with 'gcc-version-10'...
>>>>     Done.
>>>>   * Building target 'NULL_MESI_Two_Level.fast' with 'gcc-version-10'...
>>>>     Done.
>>>>   * Building target 'SPARC.opt' with 'gcc-version-10'...
>>>>     Done.
>>>>   * Building target 'SPARC.fast' with 'gcc-version-10'...
>>>>     Done.
>>>> Starting build tests with 'gcc-version-9'...
>>>>   * Building target 'NULL_MOESI_CMP_directory.opt' with
>>>> 'gcc-version-9'...
>>>>     Done.
>>>>   * Building target 'NULL_MOESI_CMP_directory.fast' with
>>>> 'gcc-version-9'...
>>>>     Done.
>>>> Starting build tests with 'gcc-version-8'...
>>>>   * Building target 'NULL_MOESI_hammer.opt' with 'gcc-version-8'...
>>>>     Done.
>>>>   * Building target 'NULL_MOESI_hammer.fast' with 'gcc-version-8'...
>>>>     Done.
>>>> Starting build tests with 'gcc-version-7'...
>>>>   * Building target 'ARM_MESI_Three_Level.opt' with 'gcc-version-7'...
>>>>     Done.
>>>>   * Building target 'ARM_MESI_Three_Level.fast' with 'gcc-version-7'...
>>>>   ! Failed with exit code 2.
>>>> Starting build tests with 'gcc-version-6'...
>>>>   * Building target 'ARM.opt' with 'gcc-version-6'...
>>>>     Done.
>>>>   * Building target 'ARM.fast' with 'gcc-version-6'...
>>>>   ! Failed with exit code 2.
>>>> Starting build tests with 'gcc-version-5'...
>>>>   * Building target 'ARM_MESI_Three_Level.opt' with 'gcc-version-5'...
>>>>   ! Failed with exit code 2.
>>>>   * Building target 'ARM_MESI_Three_Level.fast' with 'gcc-version-5'...
>>>>   ! Failed with exit code 2.
>>>> Starting build tests with 'clang-version-9'...
>>>> 'clang-version-9' was found in the comprehensive tests. All ISAs will
>>>> be built.
>>>>   * Building target 'NULL_MOESI_CMP_token.opt' with 'clang-version-9'...
>>>>     Done.
>>>>   * Building target 'NULL_MOESI_CMP_token.fast' with
>>>> 'clang-version-9'...
>>>>     Done.
>>>>   * Building target 'POWER.opt' with 'clang-version-9'...
>>>>     Done.
>>>>   * Building target 'POWER.fast' with 'clang-version-9'...
>>>>     Done.
>>>>   * Building target 'NULL_MOESI_hammer.opt' with 'clang-version-9'...
>>>>     Done.
>>>>   * Building target 'NULL_MOESI_hammer.fast' with 'clang-version-9'...
>>>>     Done.
>>>>   * Building target 'NULL_MOESI_CMP_directory.opt' with
>>>> 'clang-version-9'...
>>>>     Done.
>>>>   * Building target 'NULL_MOESI_CMP_directory.fast' with
>>>> 'clang-version-9'...
>>>>     Done.
>>>>   * Building target 'SPARC.opt' with 'clang-version-9'...
>>>>     Done.
>>>>   * Building target 'SPARC.fast' with 'clang-version-9'...
>>>>     Done.
>>>>   * Building target 'MIPS.opt' with 'clang-version-9'...
>>>>     Done.
>>>>   * Building target 'MIPS.fast' with 'clang-version-9'...
>>>>     Done.
>>>>   * Building target 'X86.opt' with 'clang-version-9'...
>>>>     Done.
>>>>   * Building target 'X86.fast' with 'clang-version-9'...
>>>>     Done.
>>>>   * Building target 'NULL_MESI_Two_Level.opt' with 'clang-version-9'...
>>>>     Done.
>>>>   * Building target 'NULL_MESI_Two_Level.fast' with 'clang-version-9'...
>>>>     Done.
>>>>   * Building target 'RISCV.opt' with 'clang-version-9'...
>>>>     Done.
>>>>   * Building target 'RISCV.fast' with 'clang-version-9'...
>>>>     Done.
>>>>   * Building target 'ARM.opt' with 'clang-version-9'...
>>>>     Done.
>>>>   * Building target 'ARM.fast' with 'clang-version-9'...
>>>>   ! Failed with exit code 2.
>>>>   * Building target 'GCN3_X86.opt' with 'clang-version-9'...
>>>>     Done.
>>>>   * Building target 'GCN3_X86.fast' with 'clang-version-9'...
>>>>   ! Failed with exit code 2.
>>>>   * Building target 'Garnet_standalone.opt' with 'clang-version-9'...
>>>>     Done.
>>>>   * Building target 'Garnet_standalone.fast' with 'clang-version-9'...
>>>>     Done.
>>>>   * Building target 'X86_MOESI_AMD_Base.opt' with 'clang-version-9'...
>>>>     Done.
>>>>   * Building target 'X86_MOESI_AMD_Base.fast' with 'clang-version-9'...
>>>>     Done.
>>>>   * Building target 'ARM_MESI_Three_Level.opt' with 'clang-version-9'...
>>>>     Done.
>>>>   * Building target 'ARM_MESI_Three_Level.fast' with
>>>> 'clang-version-9'...
>>>>   ! Failed with exit code 2.
>>>> Starting build tests with 'clang-version-8'...
>>>>   * Building target 'X86_MOESI_AMD_Base.opt' with 'clang-version-8'...
>>>>     Done.
>>>>   * Building target 'X86_MOESI_AMD_Base.fast' with 'clang-version-8'...
>>>>     Done.
>>>> Starting build tests with 'clang-version-7'...
>>>>   * Building target 'ARM_MESI_Three_Level.opt' with 'clang-version-7'...
>>>>     Done.
>>>>   * Building target 'ARM_MESI_Three_Level.fast' with
>>>> 'clang-version-7'...
>>>>   ! Failed with exit code 2.
>>>> Starting build tests with 'clang-version-6.0'...
>>>>   * Building target 'SPARC.opt' with 'clang-version-6.0'...
>>>>     Done.
>>>>   * Building target 'SPARC.fast' with 'clang-version-6.0'...
>>>>     Done.
>>>> Starting build tests with 'clang-version-5.0'...
>>>>   * Building target 'X86_MOESI_AMD_Base.opt' with 'clang-version-5.0'...
>>>>     Done.
>>>>   * Building target 'X86_MOESI_AMD_Base.fast' with
>>>> 'clang-version-5.0'...
>>>>     Done.
>>>> Starting build tests with 'clang-version-4.0'...
>>>>   * Building target 'NULL_MOESI_hammer.opt' with 'clang-version-4.0'...
>>>>     Done.
>>>>   * Building target 'NULL_MOESI_hammer.fast' with 'clang-version-4.0'...
>>>>     Done.
>>>> Starting build tests with 'clang-version-3.9'...
>>>>   * Building target 'Garnet_standalone.opt' with 'clang-version-3.9'...
>>>>     Done.
>>>>   * Building target 'Garnet_standalone.fast' with 'clang-version-3.9'...
>>>>     Done.
>>>> Build step 'Execute shell' marked build as failure
>>>> Archiving artifacts
>>>> _______________________________________________
>>>> gem5-dev mailing list -- gem5-dev@gem5.org
>>>> To unsubscribe send an email to gem5-dev-le...@gem5.org
>>>> %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s
>>>>
>>> _______________________________________________
>>> gem5-dev mailing list -- gem5-dev@gem5.org
>>> To unsubscribe send an email to gem5-dev-le...@gem5.org
>>> %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s
>>
>> _______________________________________________
> gem5-dev mailing list -- gem5-dev@gem5.org
> To unsubscribe send an email to gem5-dev-le...@gem5.org
> %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s
_______________________________________________
gem5-dev mailing list -- gem5-dev@gem5.org
To unsubscribe send an email to gem5-dev-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

Reply via email to