"G. Branden Robinson" <[email protected]> writes:
> Hi Ingo,
>
> Thanks for the build report.
>
> At 2026-02-05T04:09:25+0100, Ingo Schwarze wrote:
>> i just tested rc2 for the first time. As far as my testing in rc1 went
>> previously (i never completed testing rc1), i see no further
>> regressions in rc2 beyond what i already reported for rc1.
>>
>> It appears parallel building now works (at least it did when i
>> tested it once, which is admittedly not conclusive evidence because
>> for parallel build errors, intermittent failures are typical).
>> For now, i will do test builds in serial mode anyway because
>> that makes diff(1)ing build logs easier. Thoroughly testing
>> parallel builds is not a priority at this point.
>>
>> Here is the next crash on OpenBSD, present in both rc1 and rc2.
>>
>> Groff uses the gnulib putenv module. That module tests putenv(3)
>> in a bogus way, which causes my OpenBSD build to crash:
> [...]
>> With the workaround appended below, i now managed for the first time
>> to get groff to build on OpenBSD. I do not think it is building
>> correctly just yet, but at least the build now finishes without
>> crashing.
>
> I wonder why Bruno Haible has so much less difficulty building on
> OpenBSD than you do.
>
> Do you not build stock groff, but only attempt a build after applying
> your raft of patches to make the formatter work more like mandoc(1)?
>
> Regards,
> Branden
Here is the linker error Ingo saw:
c++ -O2 -pipe -o grops src/devices/grops/ps.o src/devices/grops/psrm.o \
-lm libdriver.a libgroff.a lib/libgnu.a
ld: error: undefined symbol: rpl_putenv
>>> referenced by psrm.cpp
>>> src/devices/grops/psrm.o:(resource_manager::output_prolog(ps_output&))
>>> referenced by ps.cpp
>>> src/devices/grops/ps.o:(main)
c++: error: linker command failed with exit code 1 (use -v to see
invocation)
*** Error 1 in . (Makefile:8416 'grops')
These make flags get rid of all Gnulib objects [1]:
# Even after the above CONFIGURE_ENV cleanup, gnulib compiles in
# several bogus files that groff does not need, merely because
# gnulib enables them by default. Get rid of them.
MAKE_FLAGS += lib_libgnu_a_OBJECTS=
Getting rid of objects tends to make the linker unhappy.
Collin
[1] https://github.com/ischwarze/groff-port/blob/1.24/Makefile