jean-frederic clere wrote:
It works only with the native "as" but not with "gas".

is this a problem on solaris? doesn't every box come with 'as' out of the box?

I don't have the gnu-assembler installed on my solaris machines
if you think it gas on solaris support is needed can you supply me a patch or tell me what is going wrong with it?


TIA
Ian


[EMAIL PROTECTED] wrote:

ianh        02/02/19 15:45:06

 Modified:    .        configure.in
              atomic/solaris_sparc apr_atomic_sparc.s
              include  apr_atomic.h
              test     testatomic.c
 Log:
 enable sun-sparc specific code

 Revision  Changes    Path
 1.409     +12 -0     apr/configure.in

 Index: configure.in
 ===================================================================
 RCS file: /home/cvs/apr/configure.in,v
 retrieving revision 1.408
 retrieving revision 1.409
 diff -u -r1.408 -r1.409
 --- configure.in      15 Feb 2002 22:36:40 -0000      1.408
 +++ configure.in      19 Feb 2002 23:45:06 -0000      1.409
 @@ -322,6 +322,18 @@
         enable_threads="no"
         eolstr="\\n"
         ;;
 +   *sun*)
 +       case $host_cpu in
 +        *sparc*)
 +           OSDIR="solaris_sparc"
 +           eolstr="\\n"
 +            ;;
 +        *)
 +            OSDIR="unix"
 +            eolstr="\\n"
 +            ;;
 +       esac
 +       ;;
     *)
         OSDIR="unix"
         eolstr="\\n"



 1.3       +30 -7     apr/atomic/solaris_sparc/apr_atomic_sparc.s

 Index: apr_atomic_sparc.s
 ===================================================================
 RCS file: /home/cvs/apr/atomic/solaris_sparc/apr_atomic_sparc.s,v
 retrieving revision 1.2
 retrieving revision 1.3
 diff -u -r1.2 -r1.3
 --- apr_atomic_sparc.s        17 Feb 2002 20:17:53 -0000      1.2
 +++ apr_atomic_sparc.s        19 Feb 2002 23:45:06 -0000      1.3
 @@ -71,19 +71,20 @@
  !
          ENTRY(apr_atomic_add_sparc)

 -        ld           [%o0], %o2
 +        ld           [%o0], %o2                   ! set o2 to current value
  _apr_atomic_add_sparc_loop:
 -        add  %o2, %o1, %o3
 -        cas  [%o0], %o2, %o3
 -        cmp  %o2, %o3
 -        bne,a        _apr_atomic_add_sparc_loop
 -        ld           [%o0], %o2
 +        add  %o2, %o1, %o3                ! o3 = o2 + o1
 +        cas  [%o0], %o2, %o3              ! if cur-val==o2 then cur-val=03
 +        cmp  %o2, %o3                     ! see if the CAS worked
 +        bne,a        _apr_atomic_add_sparc_loop   ! if not try again
 +        ld           [%o0], %o2                   ! return the previous value
          retl
          mov  %o3, %o0

          SET_SIZE(apr_atomic_add_sparc)
  !
  !
 +!
          ENTRY(apr_atomic_sub_sparc)

          ld           [%o0], %o2
 @@ -96,5 +97,27 @@
          retl
          mov  %o3, %o0

 -       SET_SIZE(apr_atomic_sub_sparc)
 +        SET_SIZE(apr_atomic_sub_sparc)
 +!
 +!
 +!
 +!     %o0  [input]   - the address of the value to compare
 +!     %o1  [input]   - the new value
 +!     %o2  [input]   - value to compare against
 +!     %o0  [output]  - the return value
 +!
 +        ENTRY(apr_atomic_cas_sparc)
 +        ENTRY(apr_atomic_casptr_sparc)
 +
 +        cas  [%o0], %o2, %o1
 +        cmp     %o1, %o2        ! if o1 == o2 values weren't swapped
 +        bne,a        _apr_atomic_cas_ne
 +        mov      %o2, %o0
 +        retl
 +        mov      %o2, %o0
 +_apr_atomic_cas_ne:
 +        retl
 +        mov      %o1, %o0
 +
 +        SET_SIZE(apr_atomic_cas_sparc)




1.8 +1 -1 apr/include/apr_atomic.h

 Index: apr_atomic.h
 ===================================================================
 RCS file: /home/cvs/apr/include/apr_atomic.h,v
 retrieving revision 1.7
 retrieving revision 1.8
 diff -u -r1.7 -r1.8
 --- apr_atomic.h      19 Feb 2002 23:15:40 -0000      1.7
 +++ apr_atomic.h      19 Feb 2002 23:45:06 -0000      1.8
 @@ -173,7 +173,7 @@

  #define APR_ATOMIC_NEED_CAS_DEFAULT 1

 -#elif defined(__sparc__not_yet)
 +#elif defined(__sparc__)
  #define apr_atomic_t apr_uint32_t
  #define apr_atomic_read(p)  *p




1.5 +0 -1 apr/test/testatomic.c

 Index: testatomic.c
 ===================================================================
 RCS file: /home/cvs/apr/test/testatomic.c,v
 retrieving revision 1.4
 retrieving revision 1.5
 diff -u -r1.4 -r1.5
 --- testatomic.c      19 Feb 2002 23:15:39 -0000      1.4
 +++ testatomic.c      19 Feb 2002 23:45:06 -0000      1.5
 @@ -83,7 +83,6 @@
          return APR_EGENERAL;
      }
      printf("OK\n");
 -    printf("debug\n y=%d\n",y);
      printf("%-60s", "testing CAS - match non-null");
      oldval = apr_atomic_cas(&y,23,12);
      if (oldval != 12) {










Reply via email to