Imported Upstream version 14.45.0
[platform/upstream/libzypp.git] / zypp / Arch.cc
index daf536e..05ec4a3 100644 (file)
@@ -82,7 +82,7 @@ namespace zypp
           break;
         }
       // This is a builtin: compatible if mentioned in targetEntry_r
-      return targetEntry_r._compatBits & _idBit;
+      return bool( targetEntry_r._compatBits & _idBit );
     }
 
     /** compare by score, then archStr. */
@@ -137,75 +137,91 @@ ZYPP_DEFINE_ID_HASHABLE( zypp::Arch::CompatEntry );
 namespace zypp
 { /////////////////////////////////////////////////////////////////
 
+  // Builtin architecture STRING VALUES to be
+  // used in defCompatibleWith below!
+  //
+  // const IdString  _foo( "foo" );
+  // const Arch Arch_foo( _foo() );
+  //
+  // NOTE: Builtin CLASS Arch CONSTANTS are defined below.
+  //       You have to change them accordingly in Arch.h.
+  //
+  // NOTE: Thake care CompatBits::IntT is able to provide one
+  //       bit for each architecture.
+  //
+  #define DEF_BUILTIN(A) \
+  namespace { static inline const IdString & _##A () { static IdString __str(#A); return __str; } } \
+  const Arch Arch_##A( _##A() )
+
+  DEF_BUILTIN( noarch );
+
+  DEF_BUILTIN( i386 );
+  DEF_BUILTIN( i486 );
+  DEF_BUILTIN( i586 );
+  DEF_BUILTIN( i686 );
+  DEF_BUILTIN( athlon );
+  DEF_BUILTIN( x86_64 );
+
+  DEF_BUILTIN( pentium3 );
+  DEF_BUILTIN( pentium4 );
+
+  DEF_BUILTIN( s390 );
+  DEF_BUILTIN( s390x );
+
+  DEF_BUILTIN( ppc );
+  DEF_BUILTIN( ppc64 );
+  DEF_BUILTIN( ppc64p7 );
+
+  DEF_BUILTIN( ppc64le );
+
+  DEF_BUILTIN( ia64 );
+
+  DEF_BUILTIN( alphaev67 );
+  DEF_BUILTIN( alphaev6 );
+  DEF_BUILTIN( alphapca56 );
+  DEF_BUILTIN( alphaev56 );
+  DEF_BUILTIN( alphaev5 );
+  DEF_BUILTIN( alpha );
+
+  DEF_BUILTIN( sparc64v );
+  DEF_BUILTIN( sparcv9v );
+  DEF_BUILTIN( sparc64 );
+  DEF_BUILTIN( sparcv9 );
+  DEF_BUILTIN( sparcv8 );
+  DEF_BUILTIN( sparc );
+
+  DEF_BUILTIN( aarch64 );
+  DEF_BUILTIN( armv7tnhl );
+  DEF_BUILTIN( armv7thl );
+  DEF_BUILTIN( armv7nhl );
+  DEF_BUILTIN( armv7hl );
+  DEF_BUILTIN( armv7l );
+  DEF_BUILTIN( armv6hl );
+  DEF_BUILTIN( armv6l );
+  DEF_BUILTIN( armv5tejl );
+  DEF_BUILTIN( armv5tel );
+  DEF_BUILTIN( armv5l );
+  DEF_BUILTIN( armv4tl );
+  DEF_BUILTIN( armv4l );
+  DEF_BUILTIN( armv3l );
+
+  DEF_BUILTIN( sh3 );
+
+  DEF_BUILTIN( sh4 );
+  DEF_BUILTIN( sh4a );
+
+  DEF_BUILTIN( m68k );
+
+  DEF_BUILTIN( mips );
+  DEF_BUILTIN( mipsel );
+  DEF_BUILTIN( mips64 );
+  DEF_BUILTIN( mips64el );
+#undef DEF_BUILTIN
+
   ///////////////////////////////////////////////////////////////////
   namespace
   { /////////////////////////////////////////////////////////////////
 
-    // Builtin architecture STRING VALUES to be
-    // used in defCompatibleWith below!
-    //
-    // const IdString  _foo( "foo" );
-    //
-    // NOTE: Builtin CLASS Arch CONSTANTS are defined below.
-    //       You have to change them accordingly.
-    //
-    // NOTE: Thake care CompatBits::IntT is able to provide one
-    //       bit for each architecture.
-    //
-#define DEF_BUILTIN(A) static inline const IdString & _##A () { static IdString __str(#A); return __str; }
-    DEF_BUILTIN( noarch );
-
-    DEF_BUILTIN( i386 );
-    DEF_BUILTIN( i486 );
-    DEF_BUILTIN( i586 );
-    DEF_BUILTIN( i686 );
-    DEF_BUILTIN( athlon );
-    DEF_BUILTIN( x86_64 );
-
-    DEF_BUILTIN( pentium3 );
-    DEF_BUILTIN( pentium4 );
-
-    DEF_BUILTIN( s390 );
-    DEF_BUILTIN( s390x );
-
-    DEF_BUILTIN( ppc );
-    DEF_BUILTIN( ppc64 );
-
-    DEF_BUILTIN( ia64 );
-
-    DEF_BUILTIN( alphaev67 );
-    DEF_BUILTIN( alphaev6 );
-    DEF_BUILTIN( alphapca56 );
-    DEF_BUILTIN( alphaev56 );
-    DEF_BUILTIN( alphaev5 );
-    DEF_BUILTIN( alpha );
-
-    DEF_BUILTIN( sparc64v );
-    DEF_BUILTIN( sparcv9v );
-    DEF_BUILTIN( sparc64 );
-    DEF_BUILTIN( sparcv9 );
-    DEF_BUILTIN( sparcv8 );
-    DEF_BUILTIN( sparc );
-
-    DEF_BUILTIN( armv7tnhl );
-    DEF_BUILTIN( armv7thl );
-    DEF_BUILTIN( armv7nhl );
-    DEF_BUILTIN( armv7hl );
-    DEF_BUILTIN( armv7l );
-    DEF_BUILTIN( armv6l );
-    DEF_BUILTIN( armv5tejl );
-    DEF_BUILTIN( armv5tel );
-    DEF_BUILTIN( armv5l );
-    DEF_BUILTIN( armv4tl );
-    DEF_BUILTIN( armv4l );
-    DEF_BUILTIN( armv3l );
-
-    DEF_BUILTIN( sh3 );
-
-    DEF_BUILTIN( sh4 );
-    DEF_BUILTIN( sh4a );
-#undef DEF_BUILTIN
-
     ///////////////////////////////////////////////////////////////////
     //
     // CLASS NAME : CompatSet
@@ -297,6 +313,9 @@ namespace zypp
         //
         defCompatibleWith( _ppc(),             _noarch() );
         defCompatibleWith( _ppc64(),           _noarch(),_ppc() );
+        defCompatibleWith( _ppc64p7(),         _noarch(),_ppc(),_ppc64() );
+        //
+        defCompatibleWith( _ppc64le(),         _noarch() );
         //
         defCompatibleWith( _alpha(),           _noarch() );
         defCompatibleWith( _alphaev5(),                _noarch(),_alpha() );
@@ -320,16 +339,25 @@ namespace zypp
         defCompatibleWith( _armv5tel(),                _noarch(),_armv3l(),_armv4l(),_armv4tl(),_armv5l() );
         defCompatibleWith( _armv5tejl(),       _noarch(),_armv3l(),_armv4l(),_armv4tl(),_armv5l(),_armv5tel() );
         defCompatibleWith( _armv6l(),          _noarch(),_armv3l(),_armv4l(),_armv4tl(),_armv5l(),_armv5tel(),_armv5tejl() );
+        defCompatibleWith( _armv6hl(),         _noarch() );
         defCompatibleWith( _armv7l(),          _noarch(),_armv3l(),_armv4l(),_armv4tl(),_armv5l(),_armv5tel(),_armv5tejl(),_armv6l() );
-        defCompatibleWith( _armv7hl(),         _noarch() );
+        defCompatibleWith( _armv7hl(),         _noarch(),_armv6hl() );
         defCompatibleWith( _armv7nhl(),                _noarch(),_armv7hl() );
         defCompatibleWith( _armv7thl(),                _noarch(),_armv7hl() );
         defCompatibleWith( _armv7tnhl(),       _noarch(),_armv7hl(),_armv7nhl(),_armv7thl() );
+        defCompatibleWith( _aarch64(),         _noarch() );
         //
         defCompatibleWith( _sh3(),             _noarch() );
         //
         defCompatibleWith( _sh4(),             _noarch() );
         defCompatibleWith( _sh4a(),            _noarch(),_sh4() );
+
+        defCompatibleWith( _m68k(),            _noarch() );
+
+       defCompatibleWith( _mips(),             _noarch() );
+       defCompatibleWith( _mipsel(),           _noarch() );
+       defCompatibleWith( _mips64(),           _noarch() );
+       defCompatibleWith( _mips64el(),         _noarch() );
         //
         ///////////////////////////////////////////////////////////////////
         // dumpOn( USR ) << endl;
@@ -396,57 +424,7 @@ namespace zypp
   ///////////////////////////////////////////////////////////////////
 
   const Arch Arch_empty ( IdString::Empty );
-  const Arch Arch_noarch( _noarch() );
-
-  const Arch Arch_i386( _i386() );
-  const Arch Arch_i486( _i486() );
-  const Arch Arch_i586( _i586() );
-  const Arch Arch_i686( _i686() );
-  const Arch Arch_athlon( _athlon() );
-  const Arch Arch_x86_64( _x86_64() );
-
-  const Arch Arch_pentium3( _pentium3() );
-  const Arch Arch_pentium4( _pentium4() );
-
-  const Arch Arch_s390( _s390() );
-  const Arch Arch_s390x( _s390x() );
-
-  const Arch Arch_ppc( _ppc() );
-  const Arch Arch_ppc64( _ppc64() );
-
-  const Arch Arch_ia64( _ia64() );
-
-  const Arch Arch_alphaev67( _alphaev67() );
-  const Arch Arch_alphaev6( _alphaev6() );
-  const Arch Arch_alphapca56( _alphapca56() );
-  const Arch Arch_alphaev56( _alphaev56() );
-  const Arch Arch_alphaev5( _alphaev5() );
-  const Arch Arch_alpha( _alpha() );
-
-  const Arch Arch_sparc64v( _sparc64v() );
-  const Arch Arch_sparc64( _sparc64() );
-  const Arch Arch_sparcv9v( _sparcv9v() );
-  const Arch Arch_sparcv9( _sparcv9() );
-  const Arch Arch_sparcv8( _sparcv8() );
-  const Arch Arch_sparc( _sparc() );
-
-  const Arch Arch_armv7tnhl( _armv7tnhl() );
-  const Arch Arch_armv7thl( _armv7thl() );
-  const Arch Arch_armv7nhl ( _armv7nhl() );
-  const Arch Arch_armv7hl ( _armv7hl() );
-  const Arch Arch_armv7l( _armv7l() );
-  const Arch Arch_armv6l( _armv6l() );
-  const Arch Arch_armv5tejl( _armv5tejl() );
-  const Arch Arch_armv5tel( _armv5tel() );
-  const Arch Arch_armv5l( _armv5l() );
-  const Arch Arch_armv4tl( _armv4tl() );
-  const Arch Arch_armv4l( _armv4l() );
-  const Arch Arch_armv3l( _armv3l() );
-
-  const Arch Arch_sh3( _sh3() );
-
-  const Arch Arch_sh4( _sh4() );
-  const Arch Arch_sh4a( _sh4a() );
+  // remaining Arch_* constants are defined by DEF_BUILTIN above.
 
   ///////////////////////////////////////////////////////////////////
   //