* elfcpp.h (enum DT): New enum member DT_GNU_FLAGS_1.
        (enum DF_GNU_1): New enum DF_GNU_1 containing DF_GNU_1_UNIQUE.
 
+2020-12-14  H.J. Lu  <hjl.tools@gmail.com>
+           Cary Coutant  <ccoutant@gmail.com>
+
+       PR gold/27039
+       * elfcpp.h (SHF): Add SHF_GNU_RETAIN.
+
 2020-10-13  H.J. Lu  <hongjiu.lu@intel.com>
 
        * elfcpp.h (GNU_PROPERTY_X86_ISA_1_USED): Renamed to ...
 
        * layout.cc (Layout::finish_dynamic_section): Set DF_GNU_1_UNIQUE.
        * options.h (class General_options): Handle -z unique, -z nounique.
 
+2020-12-14  H.J. Lu  <hjl.tools@gmail.com>
+           Cary Coutant  <ccoutant@gmail.com>
+
+       PR gold/27039
+       * layout.cc (Layout::layout): Strip SHF_GNU_RETAIN.
+       * object.cc (Sized_relobj_file::Sized_relobj_file): Initialize osabi_.
+       (Sized_relobj_file::do_layout): Keep SHF_GNU_RETAIN sections for
+       GNU/FreBSD ELFOSABIs.
+       * object.h (Osabi) New class.
+       (Sized_relobj_file): Add osabi() and osabi_.
+       * testsuite/Makefile.am (check_SCRIPTS): Add retain.sh.
+       (check_DATA): Add retain_1.out retain_2.out.
+       (MOSTLYCLEANFILES): Add retain_1 retain_2.
+       (retain_1.out): New target.
+       (retain_1): Likewise.
+       (retain_1.o): Likewise.
+       (retain_2.out): Likewise.
+       (retain_2): Likewise.
+       (retain_2.o): Likewise.
+       * testsuite/Makefile.in: Regenerate.
+       * testsuite/retain.sh: New file.
+       * testsuite/retain_1.s: Likewise.
+       * testsuite/retain_2.s: Likewise.
+
 2020-12-13  Cary Coutant  <ccoutant@gmail.com>
 
        PR gold/23539