Skip to Main Content

Berkeley DB Family

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Can't build berkeleyDB jdbc driver for android

user8199959Oct 5 2017 — edited Oct 5 2017

I'm developing an android app that needs to use big databased but it needs to run on the Android device.

I've found this database and tried to follow those instructions:

http://docs.oracle.com/cd/E17076_02/html/installation/build_android_jdbc.html

1) Downloaded db-6.2.32

2) ran the configure --enable-jdbc && make without problems

Now i'm trying to run step 4.:

$ < ndk-install-directory >/ndk-build

This gives me this error:

Android NDK: APP_PLATFORM not set. Defaulting to minimum supported version android-14. /home/mariano/Android/android-ndk-r15b/build/core/build-binary.mk:688: 
Android NDK: Module db_archive depends on undefined modules: dl log icuuc icui18n utils /home/mariano/Android/android-ndk-r15b/build/core/build-binary.mk:701:
*** Android NDK: Aborting (set APP_ALLOW_MISSING_DEPS=true to allow missing dependencies)    .  Stop.

After that, edited Android.mk and added the following line:

APP_ALLOW_MISSING_DEPS=true

This make the process to start but at the end, I have several errors that I don't know how to fix:

    /home/mariano/Downloads/db-6.2.32/build_android/jdbc/jni/../../../src/mutex/mut_tas.c:162:34: error: unrecognized instruction mnemonic

                    if (MUTEXP_IS_BUSY(mutexp) || !MUTEXP_ACQUIRE(mutexp)) {

                                                   ^

    /home/mariano/Downloads/db-6.2.32/build_android/jdbc/jni/../../../src/dbinc/mutex_int.h:1099:2: note: expanded from macro 'MUTEXP_ACQUIRE'

            MUTEX_SET(&(mutexp)->tas))

            ^

    /home/mariano/Downloads/db-6.2.32/build_android/jdbc/jni/../../../src/dbinc/mutex_int.h:477:3: note: expanded from macro 'MUTEX_SET'

                    "ldrex          %0, [%2]\n\t"                           \

                    ^

    <inline asm>:1:2: note: instantiated into assembly here

            ldrex           x8, [x28]

            ^

    /home/mariano/Downloads/db-6.2.32/build_android/jdbc/jni/../../../src/mutex/mut_tas.c:162:34: error: unrecognized instruction mnemonic

                    if (MUTEXP_IS_BUSY(mutexp) || !MUTEXP_ACQUIRE(mutexp)) {

                                                   ^

    /home/mariano/Downloads/db-6.2.32/build_android/jdbc/jni/../../../src/dbinc/mutex_int.h:1099:2: note: expanded from macro 'MUTEXP_ACQUIRE'

            MUTEX_SET(&(mutexp)->tas))

            ^

    /home/mariano/Downloads/db-6.2.32/build_android/jdbc/jni/../../../src/dbinc/mutex_int.h:478:17: note: expanded from macro 'MUTEX_SET'

                    "cmp            %0, %1\n\t"                             \

                                            ^

    <inline asm>:3:2: note: instantiated into assembly here

            strexne x8, x20, [x28]

            ^

    /home/mariano/Downloads/db-6.2.32/build_android/jdbc/jni/../../../src/mutex/mut_tas.c:162:34: error: unrecognized instruction mnemonic

                    if (MUTEXP_IS_BUSY(mutexp) || !MUTEXP_ACQUIRE(mutexp)) {

                                                   ^

    /home/mariano/Downloads/db-6.2.32/build_android/jdbc/jni/../../../src/dbinc/mutex_int.h:1099:2: note: expanded from macro 'MUTEXP_ACQUIRE'

            MUTEX_SET(&(mutexp)->tas))

            ^

    /home/mariano/Downloads/db-6.2.32/build_android/jdbc/jni/../../../src/dbinc/mutex_int.h:477:3: note: expanded from macro 'MUTEX_SET'

                    "ldrex          %0, [%2]\n\t"                           \

                    ^

    <inline asm>:1:2: note: instantiated into assembly here

            ldrex           x8, [x28]

            ^

    /home/mariano/Downloads/db-6.2.32/build_android/jdbc/jni/../../../src/mutex/mut_tas.c:162:34: error: unrecognized instruction mnemonic

                    if (MUTEXP_IS_BUSY(mutexp) || !MUTEXP_ACQUIRE(mutexp)) {

                                                   ^

    /home/mariano/Downloads/db-6.2.32/build_android/jdbc/jni/../../../src/dbinc/mutex_int.h:1099:2: note: expanded from macro 'MUTEXP_ACQUIRE'

            MUTEX_SET(&(mutexp)->tas))

            ^

    /home/mariano/Downloads/db-6.2.32/build_android/jdbc/jni/../../../src/dbinc/mutex_int.h:478:17: note: expanded from macro 'MUTEX_SET'

                    "cmp            %0, %1\n\t"                             \

                                            ^

    <inline asm>:3:2: note: instantiated into assembly here

            strexne x8, x22, [x28]

            ^

    /home/mariano/Downloads/db-6.2.32/build_android/jdbc/jni/../../../src/mutex/mut_tas.c:213:3: error: too few operands for instruction

                    MEMBAR_ENTER();

                    ^

    /home/mariano/Downloads/db-6.2.32/build_android/jdbc/jni/../../../src/dbinc/mutex_int.h:492:23: note: expanded from macro 'MEMBAR_ENTER'

            ({ __asm__ volatile ("dsb"); })

                                 ^

    <inline asm>:1:2: note: instantiated into assembly here

            dsb

            ^~~

    /home/mariano/Downloads/db-6.2.32/build_android/jdbc/jni/../../../src/mutex/mut_tas.c:439:3: error: too few operands for instruction

                    MEMBAR_ENTER();

                    ^

    /home/mariano/Downloads/db-6.2.32/build_android/jdbc/jni/../../../src/dbinc/mutex_int.h:492:23: note: expanded from macro 'MEMBAR_ENTER'

            ({ __asm__ volatile ("dsb"); })

                                 ^

    <inline asm>:1:2: note: instantiated into assembly here

            dsb

            ^~~

    /home/mariano/Downloads/db-6.2.32/build_android/jdbc/jni/../../../src/mutex/mut_tas.c:623:4: error: too few operands for instruction

                            MEMBAR_EXIT();

                            ^

    /home/mariano/Downloads/db-6.2.32/build_android/jdbc/jni/../../../src/dbinc/mutex_int.h:494:23: note: expanded from macro 'MEMBAR_EXIT'

            ({ __asm__ volatile ("dsb"); })

                                 ^

    <inline asm>:1:2: note: instantiated into assembly here

            dsb

            ^~~

    /home/mariano/Downloads/db-6.2.32/build_android/jdbc/jni/../../../src/mutex/mut_tas.c:635:3: error: too few operands for instruction

                    MEMBAR_EXIT();

                    ^

    /home/mariano/Downloads/db-6.2.32/build_android/jdbc/jni/../../../src/dbinc/mutex_int.h:494:23: note: expanded from macro 'MEMBAR_EXIT'

            ({ __asm__ volatile ("dsb"); })

                                 ^

    <inline asm>:1:2: note: instantiated into assembly here

            dsb

            ^~~

    /home/mariano/Downloads/db-6.2.32/build_android/jdbc/jni/../../../src/mutex/mut_tas.c:619:4: error: too few operands for instruction

                            MEMBAR_EXIT();

                            ^

    /home/mariano/Downloads/db-6.2.32/build_android/jdbc/jni/../../../src/dbinc/mutex_int.h:494:23: note: expanded from macro 'MEMBAR_EXIT'

            ({ __asm__ volatile ("dsb"); })

                                 ^

    <inline asm>:1:2: note: instantiated into assembly here

            dsb

            ^~~

    7 warnings and 9 errors generated.

I'm running linux mint,

Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit

Comments

BEDE

select distinct status,count(*) col1
,sum(
case
when reviwe_status='Y' then 1
else 0
end
) number_reviewed
from temp1
group by status
;

Frank Kulash

Hi,
SUM (CASE ...), as Bede showed, will work. You could also use COUNT (CASE ...), like this:

SELECT    status              -- or  LOWER (status) AS status
,         COUNT (*)  AS col1  -- or a more descriptive name, like number_total
,	  COUNT ( CASE
	  	      WHEN  review_status = 'Y'
		      THEN  'OK'
	  	  END
	  	)    AS number_reviewed
FROM      temp1
GROUP BY  status
ORDER BY  status  -- or whatever
;

If you really want to display 'open' and 'close' even though the table has 'Open' and 'Close', as you said, then you just need to change the first line.
In any event, you don't need "SELECT DISTINCT". The GROUP BY clause guarantees that status will be distinct in the output

1 - 2
Locked Post
New comments cannot be posted to this locked post.

Post Details

Locked on Nov 2 2017
Added on Oct 5 2017
0 comments
698 views