Skip to content

Conversation

@fanquake
Copy link
Member

Currently, building bdb for *BSD HOSTs in depends fails with:

libtool: compile:  clang -m64 -c -I. -I../dist/./.. -I/home/ubuntu/bitcoin/depends/x86_64-unknown-freebsd/include -D_THREAD_SAFE -pipe -std=c11 -O2 -Wno-error=implicit-function-declaration -Wno-error=format-security ../dist/./../mutex/mut_tas.c  -fPIC -DPIC -o mut_tas.o
In file included from ../dist/./../mutex/mut_tas.c:11:
In file included from ./db_int.h:884:
In file included from ../dist/./../dbinc/mutex.h:15:
../dist/./../dbinc/mutex_int.h:932:2: error: unknown type name 'pthread_rwlock_t'
        MUTEX_FIELDS                    /* Opaque thread mutex structures. */
        ^
../dist/./../dbinc/mutex_int.h:65:3: note: expanded from macro 'MUTEX_FIELDS'
                pthread_rwlock_t rwlock;        /* Read/write lock */   \
                ^
1 error generated.

Defining _XOPEN_SOURCE >=600 fixes access to the missing pthread_rwlock_t definitions.

Currently, building bdb for *BSD HOSTs in depends fails with:
```bash
libtool: compile:  clang -m64 -c -I. -I../dist/./.. -I/home/ubuntu/bitcoin/depends/x86_64-unknown-freebsd/include -D_THREAD_SAFE -pipe -std=c11 -O2 -Wno-error=implicit-function-declaration -Wno-error=format-security ../dist/./../mutex/mut_tas.c  -fPIC -DPIC -o mut_tas.o
In file included from ../dist/./../mutex/mut_tas.c:11:
In file included from ./db_int.h:884:
In file included from ../dist/./../dbinc/mutex.h:15:
../dist/./../dbinc/mutex_int.h:932:2: error: unknown type name 'pthread_rwlock_t'
        MUTEX_FIELDS                    /* Opaque thread mutex structures. */
        ^
../dist/./../dbinc/mutex_int.h:65:3: note: expanded from macro 'MUTEX_FIELDS'
                pthread_rwlock_t rwlock;        /* Read/write lock */   \
                ^
1 error generated.
```

Defining `_XOPEN_SOURCE` >=600 fixes access to the missing
`pthread_rwlock_t` definitions.
@luke-jr
Copy link
Member

luke-jr commented Sep 19, 2022

Has this always been broken, or is it a regression?

@fanquake
Copy link
Member Author

Has this always been broken, or is it a regression?

I think it's always been broken, but haven't tested extensively.

@fanquake fanquake marked this pull request as ready for review September 21, 2022 10:17
@DrahtBot
Copy link
Contributor

DrahtBot commented Sep 23, 2022

The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

Conflicts

No conflicts as of last run.

Copy link
Contributor

@jarolrod jarolrod left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ACK 5b2529b

recreated by attempting to build for make HOST=x86_64-unknown-freebsd

and got the same error message on master:

../dist/./../dbinc/mutex_int.h:932:2: error: unknown type name 'pthread_rwlock_t'
        MUTEX_FIELDS                    /* Opaque thread mutex structures. */
        ^
../dist/./../dbinc/mutex_int.h:65:3: note: expanded from macro 'MUTEX_FIELDS'
                pthread_rwlock_t rwlock;        /* Read/write lock */   \
                ^

with this pr i can properly configure and then build.

rw_lock is a part of POSIX.1-2001, making it a late addition; and reading the feature test macros manual, we do have to specify the minimum posix standard we need. Specifying _XOPEN_SOURCE is one way to do so and is the most appropriate way to do so here since the issue is isolated to this package.

@fanquake fanquake merged commit 5488dc1 into bitcoin:master Nov 28, 2022
@fanquake fanquake deleted the _BSD_bdb_compilation branch November 28, 2022 13:28
sidhujag pushed a commit to syscoin/syscoin that referenced this pull request Dec 1, 2022
5b2529b build: fix depends bdb compilation for BSDs (fanquake)

Pull request description:

  Currently, building bdb for *BSD HOSTs in depends fails with:
  ```bash
  libtool: compile:  clang -m64 -c -I. -I../dist/./.. -I/home/ubuntu/bitcoin/depends/x86_64-unknown-freebsd/include -D_THREAD_SAFE -pipe -std=c11 -O2 -Wno-error=implicit-function-declaration -Wno-error=format-security ../dist/./../mutex/mut_tas.c  -fPIC -DPIC -o mut_tas.o
  In file included from ../dist/./../mutex/mut_tas.c:11:
  In file included from ./db_int.h:884:
  In file included from ../dist/./../dbinc/mutex.h:15:
  ../dist/./../dbinc/mutex_int.h:932:2: error: unknown type name 'pthread_rwlock_t'
          MUTEX_FIELDS                    /* Opaque thread mutex structures. */
          ^
  ../dist/./../dbinc/mutex_int.h:65:3: note: expanded from macro 'MUTEX_FIELDS'
                  pthread_rwlock_t rwlock;        /* Read/write lock */   \
                  ^
  1 error generated.
  ```

  Defining `_XOPEN_SOURCE` >=600 fixes access to the missing `pthread_rwlock_t` definitions.

ACKs for top commit:
  jarolrod:
    ACK 5b2529b

Tree-SHA512: 76584bfef7a86c69a095eb722657aa681b95658a031ef2da79d91a616e5370da292a65e7d67cdf641711791422b8a407b647b630ad497ffb9908683479e6cfb6
@bitcoin bitcoin locked and limited conversation to collaborators Nov 28, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants