Обсуждение: Port Bug Report: PostgreSQL does not compile on ARM systems

Поиск
Список
Период
Сортировка

Port Bug Report: PostgreSQL does not compile on ARM systems

От
Unprivileged user
Дата:
============================================================================
                        POSTGRESQL BUG REPORT TEMPLATE
============================================================================


Your name        : Andrew McMurry
Your email address    : a.mcmurry1@physics.ox.ac.uk

Category        : install: compile
Severity        : critical

Summary: PostgreSQL does not compile on ARM systems

System Configuration
--------------------
  Operating System   : NetBSD/arm32 1.3-current

  PostgreSQL version : 6.4.2

  Compiler used      : ecgs-1.1.1

Hardware:
---------
CATS (StrongARM 110 processor), 128MB RAM

Versions of other tools:
------------------------


--------------------------------------------------------------------------

Problem Description:
--------------------
The PostgreSQL sources fail to compile on NetBSD/arm32
systems due to the lack of a TAS function.

--------------------------------------------------------------------------

Test Case:
----------


--------------------------------------------------------------------------

Solution:
---------
I am sorry that this isn't a proper patch.
Add the following into src/include/storage/s_lock.h:

#if defined(__arm32__)
#define TAS(lock) tas(lock)

static __inline__ int
tas(volatile slock_t *lock)
{
        register slock_t _res = 1;

__asm__("swpb %0, %0, [%3]": "=r"(_res), "=m"(*lock):"0"(_res), "r" (lock));
        return (int) _res;
}

#endif   /* __arm32__ */


--------------------------------------------------------------------------


Re: [PORTS] Port Bug Report: PostgreSQL does not compile on ARM systems

От
Thomas Lockhart
Дата:
> Problem Description:
> --------------------
> The PostgreSQL sources fail to compile on NetBSD/arm32
> systems due to the lack of a TAS function.
> Solution:
> ---------
> I am sorry that this isn't a proper patch.

I am too :(

So, if someone were to add this TAS capability, does everything build
properly? Do the regression tests look reasonable? Do we have a fully
supported platform with all the bells and whistles??

I'd like to add your platform to the supported list for the upcoming
release...

                       - Tom

> Add the following into src/include/storage/s_lock.h:
>
> #if defined(__arm32__)
> #define TAS(lock) tas(lock)
>
> static __inline__ int
> tas(volatile slock_t *lock)
> {
>         register slock_t _res = 1;
>
> __asm__("swpb %0, %0, [%3]": "=r"(_res), "=m"(*lock):"0"(_res), "r" (lock));
>         return (int) _res;
> }
>
> #endif   /* __arm32__ */