Thank you for your quick attention to this, Luis, that certain works and
compiles successfully.

One question, again not a C programmer, but why both `extern` the
"declaration" and move the "definition", if those are the correct terms?

On Tue, Jul 11, 2023 at 10:05 PM Luis Felipe Strano Moraes <
luis.str...@gmail.com> wrote:

> That is perfectly fine, the other way of fixing it would be this way which
> was apparently already committed to the git tree but no new release was
> made that includes it:
>
> http://git.savannah.gnu.org/cgit/gnugo.git/commit/?h=ttn-maint&id=54b697abcd2ccfb2fe0f5a7454da4a14118483ca
>
> The reason this error was encountered was due to changes in GCC as it
> evolves where it starts treating some things differently, and it has been a
> long time since GNU Go 3.8 was released.
>
> Best regards,
>
>
> On Tue, Jul 11, 2023 at 5:19 PM James Dempsey <james.e.demp...@gmail.com>
> wrote:
>
>> I ran into an issue with compiling GNU Go 3.8 on Amazon Linux 2023 (gcc
>> (GCC) 11.3.1 20221121 (Red Hat 11.3.1-4)).
>>
>> I receive the follow error when running `./configure` and `make`:
>>
>> gcc  -g -O2   -o mkpat  mkpat.o transform.o dfa.o ../utils/libutils.a -lm
>>> /usr/bin/ld:
>>> transform.o:/home/ec2-user/kgsGtp-3.5.23/gnugo-3.8/patterns/../engine/liberty.h:861:
>>> multiple definition of `meaningless_white_moves';
>>> mkpat.o:/home/ec2-user/kgsGtp-3.5.23/gnugo-3.8/patterns/../engine/liberty.h:861:
>>> first defined here
>>> /usr/bin/ld:
>>> transform.o:/home/ec2-user/kgsGtp-3.5.23/gnugo-3.8/patterns/../engine/liberty.h:860:
>>> multiple definition of `meaningless_black_moves';
>>> mkpat.o:/home/ec2-user/kgsGtp-3.5.23/gnugo-3.8/patterns/../engine/liberty.h:860:
>>> first defined here
>>> /usr/bin/ld:
>>> dfa.o:/home/ec2-user/kgsGtp-3.5.23/gnugo-3.8/patterns/../engine/liberty.h:861:
>>> multiple definition of `meaningless_white_moves';
>>> mkpat.o:/home/ec2-user/kgsGtp-3.5.23/gnugo-3.8/patterns/../engine/liberty.h:861:
>>> first defined here
>>> /usr/bin/ld:
>>> dfa.o:/home/ec2-user/kgsGtp-3.5.23/gnugo-3.8/patterns/../engine/liberty.h:860:
>>> multiple definition of `meaningless_black_moves';
>>> mkpat.o:/home/ec2-user/kgsGtp-3.5.23/gnugo-3.8/patterns/../engine/liberty.h:860:
>>> first defined here
>>> collect2: error: ld returned 1 exit status
>>> make[2]: *** [Makefile:371: mkpat] Error 1
>>> make[2]: Leaving directory
>>> '/home/ec2-user/kgsGtp-3.5.23/gnugo-3.8/patterns'
>>> make[1]: *** [Makefile:232: all-recursive] Error 1
>>> make[1]: Leaving directory '/home/ec2-user/kgsGtp-3.5.23/gnugo-3.8'
>>> make: *** [Makefile:168: all] Error 2
>>
>>
>> My solution was to move the following lines from `liberty.h` to
>> `unconditional.c`:
>>
>> /* Unconditionally meaningless moves. */
>>> int meaningless_black_moves[BOARDMAX];
>>> int meaningless_white_moves[BOARDMAX];
>>
>>
>> This change allowed me to compile successfully.
>>
>> I am not a C programmer.  Is this a reasonable change to make
>> and does not functionally affect the program?  Why was this error
>> encountered in the first place?
>>
>> Thank you.
>> _______________________________________________
>> gnugo-devel mailing list
>> gnugo-devel@gnu.org
>> https://lists.gnu.org/mailman/listinfo/gnugo-devel
>>
>
>
> --
> Luís Felipe Strano Moraes
> _______________________________________________
> gnugo-devel mailing list
> gnugo-devel@gnu.org
> https://lists.gnu.org/mailman/listinfo/gnugo-devel
>
_______________________________________________
gnugo-devel mailing list
gnugo-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/gnugo-devel

Reply via email to