Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix building with gcc 10 and -fno-common #54

Closed
wants to merge 1 commit into from
Closed

Fix building with gcc 10 and -fno-common #54

wants to merge 1 commit into from

Conversation

kzyapkov
Copy link

@kzyapkov kzyapkov commented Jul 9, 2020

Thus, make works without having to use -fcommon on Arch Linux, addresses #52 . I hope I got the intended use of those variables right.

@df7cb
Copy link

df7cb commented Jul 27, 2020

Debian needs this patch as well, please consider merging and tagging a new release. Thanks!

https://salsa.debian.org/debian-hamradio-team/dmrconfig

@johnbrier
Copy link

johnbrier commented Nov 26, 2020

I was getting many errors like mentioned in #52. I manually downloaded the updated files from this PR and it fixed many of them. I still have two remaining errors though.

Before updating the three files:

$ make
cc -g -O -Wall -Werror  -DVERSION='"1.1.240"' -I/usr/include/libusb-1.0    -c -o main.o main.c
cc -g -O -Wall -Werror  -DVERSION='"1.1.240"' -I/usr/include/libusb-1.0    -c -o util.o util.c
cc -g -O -Wall -Werror  -DVERSION='"1.1.240"' -I/usr/include/libusb-1.0    -c -o radio.o radio.c
cc -g -O -Wall -Werror  -DVERSION='"1.1.240"' -I/usr/include/libusb-1.0    -c -o dfu-libusb.o dfu-libusb.c
cc -g -O -Wall -Werror  -DVERSION='"1.1.240"' -I/usr/include/libusb-1.0    -c -o uv380.o uv380.c
cc -g -O -Wall -Werror  -DVERSION='"1.1.240"' -I/usr/include/libusb-1.0    -c -o md380.o md380.c
cc -g -O -Wall -Werror  -DVERSION='"1.1.240"' -I/usr/include/libusb-1.0    -c -o rd5r.o rd5r.c
cc -g -O -Wall -Werror  -DVERSION='"1.1.240"' -I/usr/include/libusb-1.0    -c -o gd77.o gd77.c
cc -g -O -Wall -Werror  -DVERSION='"1.1.240"' -I/usr/include/libusb-1.0    -c -o hid.o hid.c
cc -g -O -Wall -Werror  -DVERSION='"1.1.240"' -I/usr/include/libusb-1.0    -c -o serial.o serial.c
cc -g -O -Wall -Werror  -DVERSION='"1.1.240"' -I/usr/include/libusb-1.0    -c -o d868uv.o d868uv.c
cc -g -O -Wall -Werror  -DVERSION='"1.1.240"' -I/usr/include/libusb-1.0    -c -o dm1801.o dm1801.c
cc -g -O -Wall -Werror  -DVERSION='"1.1.240"' -I/usr/include/libusb-1.0    -c -o hid-libusb.o hid-libusb.c
cc -g -o dmrconfig main.o util.o radio.o dfu-libusb.o uv380.o md380.o rd5r.o gd77.o hid.o serial.o d868uv.o dm1801.o hid-libusb.o -lusb-1.0 -ludev -pthread 
/usr/bin/ld: util.o:/home/jbrier/dmrconfig/util.h:38: multiple definition of `trace_flag'; main.o:/home/jbrier/dmrconfig/util.h:38: first defined here
/usr/bin/ld: radio.o:/home/jbrier/dmrconfig/radio.h:147: multiple definition of `radio_progress'; main.o:/home/jbrier/dmrconfig/radio.h:147: first defined here
/usr/bin/ld: radio.o:/home/jbrier/dmrconfig/util.h:38: multiple definition of `trace_flag'; main.o:/home/jbrier/dmrconfig/util.h:38: first defined here
/usr/bin/ld: radio.o:/home/jbrier/dmrconfig/radio.h:142: multiple definition of `radio_port'; main.o:/home/jbrier/dmrconfig/radio.h:142: first defined here
/usr/bin/ld: dfu-libusb.o:/home/jbrier/dmrconfig/util.h:38: multiple definition of `trace_flag'; main.o:/home/jbrier/dmrconfig/util.h:38: first defined here
/usr/bin/ld: uv380.o:/home/jbrier/dmrconfig/radio.h:147: multiple definition of `radio_progress'; main.o:/home/jbrier/dmrconfig/radio.h:147: first defined here
/usr/bin/ld: uv380.o:/home/jbrier/dmrconfig/util.h:38: multiple definition of `trace_flag'; main.o:/home/jbrier/dmrconfig/util.h:38: first defined here
/usr/bin/ld: uv380.o:/home/jbrier/dmrconfig/radio.h:142: multiple definition of `radio_port'; main.o:/home/jbrier/dmrconfig/radio.h:142: first defined here
/usr/bin/ld: md380.o:/home/jbrier/dmrconfig/radio.h:147: multiple definition of `radio_progress'; main.o:/home/jbrier/dmrconfig/radio.h:147: first defined here
/usr/bin/ld: md380.o:/home/jbrier/dmrconfig/util.h:38: multiple definition of `trace_flag'; main.o:/home/jbrier/dmrconfig/util.h:38: first defined here
/usr/bin/ld: md380.o:/home/jbrier/dmrconfig/radio.h:142: multiple definition of `radio_port'; main.o:/home/jbrier/dmrconfig/radio.h:142: first defined here
/usr/bin/ld: rd5r.o:/home/jbrier/dmrconfig/radio.h:147: multiple definition of `radio_progress'; main.o:/home/jbrier/dmrconfig/radio.h:147: first defined here
/usr/bin/ld: rd5r.o:/home/jbrier/dmrconfig/util.h:38: multiple definition of `trace_flag'; main.o:/home/jbrier/dmrconfig/util.h:38: first defined here
/usr/bin/ld: rd5r.o:/home/jbrier/dmrconfig/radio.h:142: multiple definition of `radio_port'; main.o:/home/jbrier/dmrconfig/radio.h:142: first defined here
/usr/bin/ld: gd77.o:/home/jbrier/dmrconfig/radio.h:147: multiple definition of `radio_progress'; main.o:/home/jbrier/dmrconfig/radio.h:147: first defined here
/usr/bin/ld: gd77.o:/home/jbrier/dmrconfig/util.h:38: multiple definition of `trace_flag'; main.o:/home/jbrier/dmrconfig/util.h:38: first defined here
/usr/bin/ld: gd77.o:/home/jbrier/dmrconfig/radio.h:142: multiple definition of `radio_port'; main.o:/home/jbrier/dmrconfig/radio.h:142: first defined here
/usr/bin/ld: hid.o:/home/jbrier/dmrconfig/util.h:38: multiple definition of `trace_flag'; main.o:/home/jbrier/dmrconfig/util.h:38: first defined here
/usr/bin/ld: serial.o:/home/jbrier/dmrconfig/util.h:38: multiple definition of `trace_flag'; main.o:/home/jbrier/dmrconfig/util.h:38: first defined here
/usr/bin/ld: d868uv.o:/home/jbrier/dmrconfig/util.h:38: multiple definition of `trace_flag'; main.o:/home/jbrier/dmrconfig/util.h:38: first defined here
/usr/bin/ld: d868uv.o:/home/jbrier/dmrconfig/radio.h:147: multiple definition of `radio_progress'; main.o:/home/jbrier/dmrconfig/radio.h:147: first defined here
/usr/bin/ld: d868uv.o:/home/jbrier/dmrconfig/radio.h:142: multiple definition of `radio_port'; main.o:/home/jbrier/dmrconfig/radio.h:142: first defined here
/usr/bin/ld: dm1801.o:/home/jbrier/dmrconfig/radio.h:147: multiple definition of `radio_progress'; main.o:/home/jbrier/dmrconfig/radio.h:147: first defined here
/usr/bin/ld: dm1801.o:/home/jbrier/dmrconfig/util.h:38: multiple definition of `trace_flag'; main.o:/home/jbrier/dmrconfig/util.h:38: first defined here
/usr/bin/ld: dm1801.o:/home/jbrier/dmrconfig/radio.h:142: multiple definition of `radio_port'; main.o:/home/jbrier/dmrconfig/radio.h:142: first defined here
/usr/bin/ld: hid-libusb.o:/home/jbrier/dmrconfig/util.h:38: multiple definition of `trace_flag'; main.o:/home/jbrier/dmrconfig/util.h:38: first defined here
collect2: error: ld returned 1 exit status
make: *** [Makefile:52: dmrconfig] Error 1

After updating the three files:

$ make
cc -g -O -Wall -Werror  -DVERSION='"1.1.240"' -I/usr/include/libusb-1.0    -c -o main.o main.c
cc -g -O -Wall -Werror  -DVERSION='"1.1.240"' -I/usr/include/libusb-1.0    -c -o util.o util.c
cc -g -O -Wall -Werror  -DVERSION='"1.1.240"' -I/usr/include/libusb-1.0    -c -o radio.o radio.c
cc -g -O -Wall -Werror  -DVERSION='"1.1.240"' -I/usr/include/libusb-1.0    -c -o dfu-libusb.o dfu-libusb.c
cc -g -O -Wall -Werror  -DVERSION='"1.1.240"' -I/usr/include/libusb-1.0    -c -o uv380.o uv380.c
cc -g -O -Wall -Werror  -DVERSION='"1.1.240"' -I/usr/include/libusb-1.0    -c -o md380.o md380.c
cc -g -O -Wall -Werror  -DVERSION='"1.1.240"' -I/usr/include/libusb-1.0    -c -o rd5r.o rd5r.c
cc -g -O -Wall -Werror  -DVERSION='"1.1.240"' -I/usr/include/libusb-1.0    -c -o gd77.o gd77.c
cc -g -O -Wall -Werror  -DVERSION='"1.1.240"' -I/usr/include/libusb-1.0    -c -o hid.o hid.c
cc -g -O -Wall -Werror  -DVERSION='"1.1.240"' -I/usr/include/libusb-1.0    -c -o serial.o serial.c
cc -g -O -Wall -Werror  -DVERSION='"1.1.240"' -I/usr/include/libusb-1.0    -c -o d868uv.o d868uv.c
cc -g -O -Wall -Werror  -DVERSION='"1.1.240"' -I/usr/include/libusb-1.0    -c -o hid-libusb.o hid-libusb.c
cc -g -o dmrconfig main.o util.o radio.o dfu-libusb.o uv380.o md380.o rd5r.o gd77.o hid.o serial.o d868uv.o dm1801.o hid-libusb.o -lusb-1.0 -ludev -pthread 
/usr/bin/ld: dm1801.o:/home/jbrier/dmrconfig/radio.h:147: multiple definition of `radio_progress'; radio.o:/home/jbrier/dmrconfig/radio.c:62: first defined here
/usr/bin/ld: dm1801.o:/home/jbrier/dmrconfig/util.h:38: multiple definition of `trace_flag'; util.o:/home/jbrier/dmrconfig/util.c:47: first defined here
collect2: error: ld returned 1 exit status
make: *** [Makefile:52: dmrconfig] Error 1

Fedora 33
gcc version 10.2.1 20201016 (Red Hat 10.2.1-6) (GCC)

@Nimayer
Copy link
Contributor

Nimayer commented Jan 5, 2021

After commit 1a69014 DMRconfig compiles with GCC 10 and the now default -fno-common option.

Thank you @kzyapkov and others for submitting and commenting on this Pull Request.

I will close the PR since the suggested change is now already integrated in the master branch.

@Nimayer Nimayer closed this Jan 5, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants