Your message dated Wed, 22 Jul 2026 12:13:10 +0900
with message-id 
<6cwlvy2vhxr2kiezufkuszydtalwpdkbafpm7lz2ciduqdnglt@p6ioqpye7nji>
and subject line Re: Bug#1128874: firefox: FTBFS with glibc 2.43 due to 
ONCE_FLAG_INIT redefinition
has caused the Debian Bug report #1128874,
regarding firefox: FTBFS with glibc 2.43 due to ONCE_FLAG_INIT redefinition
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
1128874: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1128874
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Source: firefox
Version: 147.0.4-1
Severity: important
Tags: ftbfs upstream
Justification: fails to build from source
User: [email protected]
Usertags: glibc-2.43

Dear maintainer(s),

firefox fails to build from source with glibc 2.43, currently in
experimental. From the build log:

| [glslopt 0.1.12] cargo:warning=In file included from 
src/compiler/glsl/glcpp/glcpp-parse.y:32:
| [glslopt 0.1.12] cargo:warning=In file included from 
glsl-optimizer/src/mesa/main/mtypes.h:39:
| [glslopt 0.1.12] cargo:warning=In file included from 
glsl-optimizer/include/c11/threads.h:66:
| [glslopt 0.1.12] 
cargo:warning=glsl-optimizer/include/c11/threads_posix.h:54:9: warning: 
'ONCE_FLAG_INIT' macro redefined [-Wmacro-redefined]
| [glslopt 0.1.12] cargo:warning=   54 | #define ONCE_FLAG_INIT 
PTHREAD_ONCE_INIT
| [glslopt 0.1.12] cargo:warning=      |         ^
| [glslopt 0.1.12] 
cargo:warning=/usr/include/aarch64-linux-gnu/bits/types/once_flag.h:25:9: note: 
previous definition is here
| [glslopt 0.1.12] cargo:warning=   25 | #define ONCE_FLAG_INIT __ONCE_FLAG_INIT
| [glslopt 0.1.12] cargo:warning=      |         ^
| [glslopt 0.1.12] cargo:warning=In file included from 
src/compiler/glsl/glcpp/glcpp-parse.y:32:
| [glslopt 0.1.12] cargo:warning=In file included from 
glsl-optimizer/src/mesa/main/mtypes.h:39:
| [glslopt 0.1.12] cargo:warning=In file included from 
glsl-optimizer/include/c11/threads.h:66:
| [glslopt 0.1.12] 
cargo:warning=glsl-optimizer/include/c11/threads_posix.h:69:25: error: typedef 
redefinition with different types ('pthread_once_t' (aka 'int') vs 
'__once_flag')
| [glslopt 0.1.12] cargo:warning=   69 | typedef pthread_once_t  once_flag;
| [glslopt 0.1.12] cargo:warning=      |                         ^
| [glslopt 0.1.12] 
cargo:warning=/usr/include/aarch64-linux-gnu/bits/types/once_flag.h:24:21: 
note: previous definition is here
| [glslopt 0.1.12] cargo:warning=   24 | typedef __once_flag once_flag;
| [glslopt 0.1.12] cargo:warning=      |                     ^
| [glslopt 0.1.12] cargo:warning=In file included from 
src/compiler/glsl/glcpp/glcpp-parse.y:32:
| [glslopt 0.1.12] cargo:warning=In file included from 
glsl-optimizer/src/mesa/main/mtypes.h:39:
| [glslopt 0.1.12] cargo:warning=In file included from 
glsl-optimizer/include/c11/threads.h:66:
| [glslopt 0.1.12] 
cargo:warning=glsl-optimizer/include/c11/threads_posix.h:94:1: error: static 
declaration of 'call_once' follows non-static declaration
| [glslopt 0.1.12] cargo:warning=   94 | call_once(once_flag *flag, void 
(*func)(void))
| [glslopt 0.1.12] cargo:warning=      | ^
| [glslopt 0.1.12] cargo:warning=/usr/include/stdlib.h:1195:13: note: previous 
declaration is here
| [glslopt 0.1.12] cargo:warning= 1195 | extern void call_once (once_flag 
*__flag, void (*__func)(void));
| [glslopt 0.1.12] cargo:warning=      |             ^
| [glslopt 0.1.12] cargo:warning=In file included from 
src/compiler/glsl/glcpp/glcpp-parse.y:32:
| [glslopt 0.1.12] cargo:warning=In file included from 
glsl-optimizer/src/mesa/main/mtypes.h:39:
| [glslopt 0.1.12] cargo:warning=In file included from 
glsl-optimizer/include/c11/threads.h:66:
| [glslopt 0.1.12] 
cargo:warning=glsl-optimizer/include/c11/threads_posix.h:96:18: warning: 
incompatible pointer types passing 'once_flag *' (aka '__once_flag *') to 
parameter of type 'pthread_once_t *' (aka 'int *') 
[-Wincompatible-pointer-types]
| [glslopt 0.1.12] cargo:warning=   96 |     pthread_once(flag, func);
| [glslopt 0.1.12] cargo:warning=      |                  ^~~~
| [glslopt 0.1.12] cargo:warning=/usr/include/pthread.h:509:42: note: passing 
argument to parameter '__once_control' here
| [glslopt 0.1.12] cargo:warning=  509 | extern int pthread_once 
(pthread_once_t *__once_control,
| [glslopt 0.1.12] cargo:warning=      |                                        
  ^

...

| dh_auto_build: error: cd build-browser && make -j128 returned exit code 2
| make[3]: *** [debian/rules:250: stamps/build-browser] Error 25
| make[3]: Leaving directory '/build/reproducible-path/firefox-147.0.4'
| make[2]: *** [debian/rules:336: build] Error 2
| make[2]: Leaving directory '/build/reproducible-path/firefox-147.0.4'
| make[1]: *** [debian/rules:336: install] Error 2
| make[1]: Leaving directory '/build/reproducible-path/firefox-147.0.4'
| make: *** [debian/rules:336: binary] Error 2
| dpkg-buildpackage: error: debian/rules binary subprocess failed with exit 
status 2

The full build log is available here [1].

The issue is due to the definition of ONCE_FLAG_INIT in stdlib.h in
addition to threads.h as part of ISO C23 [2]. I believe that the issue
is fixed upstream [3], but I haven't tested the patch.

I would like to thanks Emanuele Rocca for doing the archive rebuild on a
fast arm64 server.

Regards
Aurelien

[1] 
https://people.debian.org/~ema/glibc-2.43-rebuilds/output-1/firefox_arm64.build
[2] 
https://sourceware.org/git/?p=glibc.git;a=commit;h=a7ddbf456d97ac8d1aa7afd735e196a1488bd874
[3] 
https://github.com/jamienicol/glsl-optimizer/commit/9913c27419488217cb3e9aa18dcda41c8dee1284

-- 
Aurelien Jarno                          GPG: 4096R/1DDD8C9B
[email protected]                     http://aurel32.net

--- End Message ---
--- Begin Message ---
Version: 152.0-1

This was fixed in Firefox 152.

On Mon, Feb 23, 2026 at 09:36:42PM +0100, Aurelien Jarno wrote:
> Source: firefox
> Version: 147.0.4-1
> Severity: important
> Tags: ftbfs upstream
> Justification: fails to build from source
> User: [email protected]
> Usertags: glibc-2.43
> 
> Dear maintainer(s),
> 
> firefox fails to build from source with glibc 2.43, currently in
> experimental. From the build log:
> 
> | [glslopt 0.1.12] cargo:warning=In file included from 
> src/compiler/glsl/glcpp/glcpp-parse.y:32:
> | [glslopt 0.1.12] cargo:warning=In file included from 
> glsl-optimizer/src/mesa/main/mtypes.h:39:
> | [glslopt 0.1.12] cargo:warning=In file included from 
> glsl-optimizer/include/c11/threads.h:66:
> | [glslopt 0.1.12] 
> cargo:warning=glsl-optimizer/include/c11/threads_posix.h:54:9: warning: 
> 'ONCE_FLAG_INIT' macro redefined [-Wmacro-redefined]
> | [glslopt 0.1.12] cargo:warning=   54 | #define ONCE_FLAG_INIT 
> PTHREAD_ONCE_INIT
> | [glslopt 0.1.12] cargo:warning=      |         ^
> | [glslopt 0.1.12] 
> cargo:warning=/usr/include/aarch64-linux-gnu/bits/types/once_flag.h:25:9: 
> note: previous definition is here
> | [glslopt 0.1.12] cargo:warning=   25 | #define ONCE_FLAG_INIT 
> __ONCE_FLAG_INIT
> | [glslopt 0.1.12] cargo:warning=      |         ^
> | [glslopt 0.1.12] cargo:warning=In file included from 
> src/compiler/glsl/glcpp/glcpp-parse.y:32:
> | [glslopt 0.1.12] cargo:warning=In file included from 
> glsl-optimizer/src/mesa/main/mtypes.h:39:
> | [glslopt 0.1.12] cargo:warning=In file included from 
> glsl-optimizer/include/c11/threads.h:66:
> | [glslopt 0.1.12] 
> cargo:warning=glsl-optimizer/include/c11/threads_posix.h:69:25: error: 
> typedef redefinition with different types ('pthread_once_t' (aka 'int') vs 
> '__once_flag')
> | [glslopt 0.1.12] cargo:warning=   69 | typedef pthread_once_t  once_flag;
> | [glslopt 0.1.12] cargo:warning=      |                         ^
> | [glslopt 0.1.12] 
> cargo:warning=/usr/include/aarch64-linux-gnu/bits/types/once_flag.h:24:21: 
> note: previous definition is here
> | [glslopt 0.1.12] cargo:warning=   24 | typedef __once_flag once_flag;
> | [glslopt 0.1.12] cargo:warning=      |                     ^
> | [glslopt 0.1.12] cargo:warning=In file included from 
> src/compiler/glsl/glcpp/glcpp-parse.y:32:
> | [glslopt 0.1.12] cargo:warning=In file included from 
> glsl-optimizer/src/mesa/main/mtypes.h:39:
> | [glslopt 0.1.12] cargo:warning=In file included from 
> glsl-optimizer/include/c11/threads.h:66:
> | [glslopt 0.1.12] 
> cargo:warning=glsl-optimizer/include/c11/threads_posix.h:94:1: error: static 
> declaration of 'call_once' follows non-static declaration
> | [glslopt 0.1.12] cargo:warning=   94 | call_once(once_flag *flag, void 
> (*func)(void))
> | [glslopt 0.1.12] cargo:warning=      | ^
> | [glslopt 0.1.12] cargo:warning=/usr/include/stdlib.h:1195:13: note: 
> previous declaration is here
> | [glslopt 0.1.12] cargo:warning= 1195 | extern void call_once (once_flag 
> *__flag, void (*__func)(void));
> | [glslopt 0.1.12] cargo:warning=      |             ^
> | [glslopt 0.1.12] cargo:warning=In file included from 
> src/compiler/glsl/glcpp/glcpp-parse.y:32:
> | [glslopt 0.1.12] cargo:warning=In file included from 
> glsl-optimizer/src/mesa/main/mtypes.h:39:
> | [glslopt 0.1.12] cargo:warning=In file included from 
> glsl-optimizer/include/c11/threads.h:66:
> | [glslopt 0.1.12] 
> cargo:warning=glsl-optimizer/include/c11/threads_posix.h:96:18: warning: 
> incompatible pointer types passing 'once_flag *' (aka '__once_flag *') to 
> parameter of type 'pthread_once_t *' (aka 'int *') 
> [-Wincompatible-pointer-types]
> | [glslopt 0.1.12] cargo:warning=   96 |     pthread_once(flag, func);
> | [glslopt 0.1.12] cargo:warning=      |                  ^~~~
> | [glslopt 0.1.12] cargo:warning=/usr/include/pthread.h:509:42: note: passing 
> argument to parameter '__once_control' here
> | [glslopt 0.1.12] cargo:warning=  509 | extern int pthread_once 
> (pthread_once_t *__once_control,
> | [glslopt 0.1.12] cargo:warning=      |                                      
>     ^
> 
> ...
> 
> | dh_auto_build: error: cd build-browser && make -j128 returned exit code 2
> | make[3]: *** [debian/rules:250: stamps/build-browser] Error 25
> | make[3]: Leaving directory '/build/reproducible-path/firefox-147.0.4'
> | make[2]: *** [debian/rules:336: build] Error 2
> | make[2]: Leaving directory '/build/reproducible-path/firefox-147.0.4'
> | make[1]: *** [debian/rules:336: install] Error 2
> | make[1]: Leaving directory '/build/reproducible-path/firefox-147.0.4'
> | make: *** [debian/rules:336: binary] Error 2
> | dpkg-buildpackage: error: debian/rules binary subprocess failed with exit 
> status 2
> 
> The full build log is available here [1].
> 
> The issue is due to the definition of ONCE_FLAG_INIT in stdlib.h in
> addition to threads.h as part of ISO C23 [2]. I believe that the issue
> is fixed upstream [3], but I haven't tested the patch.
> 
> I would like to thanks Emanuele Rocca for doing the archive rebuild on a
> fast arm64 server.
> 
> Regards
> Aurelien
> 
> [1] 
> https://people.debian.org/~ema/glibc-2.43-rebuilds/output-1/firefox_arm64.build
> [2] 
> https://sourceware.org/git/?p=glibc.git;a=commit;h=a7ddbf456d97ac8d1aa7afd735e196a1488bd874
> [3] 
> https://github.com/jamienicol/glsl-optimizer/commit/9913c27419488217cb3e9aa18dcda41c8dee1284
> 
> -- 
> Aurelien Jarno                          GPG: 4096R/1DDD8C9B
> [email protected]                     http://aurel32.net

--- End Message ---

Reply via email to