NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

toolchain/53023: config(1) behavior change with new gcc6

>Number:         53023
>Category:       toolchain
>Synopsis:       config(1) behavior has changed with new gcc6
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    toolchain-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue Feb 13 07:20:00 +0000 2018
>Originator:     Paul Goyette
>Release:        NetBSD 8.99.12
| Paul Goyette     | PGP Key fingerprint:     | E-mail addresses:          |
| (Retired)        | FA29 0E3B 35AF E8AE 6651 | paul at whooppee dot com   |
| Kernel Developer | 0786 F758 55DE 53BA 7731 | pgoyette at netbsd dot org |
System: NetBSD 8.99.12 NetBSD 8.99.12 (SPEEDY 2018-02-12 00:00:12 UTC) #3: Mon Feb 12 06:57:12 UTC 2018 amd64
Architecture: x86_64
Machine: amd64
With previous gcc5, if you added "dbcool* at i2c? addr 0xxx" to the amd64
GENERIC config file, it would create an ioconf.c file that includes the
following text:

	static const struct cfiattrdata dbcoolcf_iattrdata = {
		"dbcool", 0, {
			{ NULL, NULL, 0 },

However, with the newly introduced gcc6, these lines do not get generated.
As a result, the eventual compilation of ioconf.c -> .o fails with the

	error: 'dbcoolcf_iattrdata' defined but not used

As a work-around, you can restore the correct behavior of config(1) by
removing the line

	define dbcool {}

from src/sys/dev/i2c/files.i2c

Agruably, the define line doesn't really belong there anyway, and is not
present for many other devices.  However, this _does_ trigger a behavior
change in config(1), and who knows what other behavior changes may also
have been triggered by the gcc6 update.

I've files this against config(1), but I've set the category to toolchain
so hopefully this will get the attention of the right maintainers.
For now, I have removed the 'define dbcool {}' line from files.i2c since
it shouldn't have been there in the first place.  To reproduce the bug,
simply restore that line, and add

	dbcool* at iic? addr 0x2D

to the amd64 GENERIC config.  Try to build the kernel.
As a workaround, the 'define dbcool {}' line in dev/i2c/files.i2c has
been commented out.


Home | Main Index | Thread Index | Old Index