Message ID | 20241001144224.3492196-1-brahmajit.xyz@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [1/1] drm/display: Fix building with GCC 15 | expand |
On Tue, 01 Oct 2024, Brahmajit Das <brahmajit.xyz@gmail.com> wrote: > GCC 15 enables -Werror=unterminated-string-initialization by default. > This results in the following build error > > drivers/gpu/drm/display/drm_dp_dual_mode_helper.c: In function ‘is_hdmi_adaptor’: > drivers/gpu/drm/display/drm_dp_dual_mode_helper.c:164:17: error: initializer-string for array of > ‘char’ is too long [-Werror=unterminated-string-initialization] > 164 | "DP-HDMI ADAPTOR\x04"; > | ^~~~~~~~~~~~~~~~~~~~~ > > After discussion with Ville, the fix was to increase the size of > dp_dual_mode_hdmi_id array by one, so that it can accommodate the new > line character. This should let us build the kernel with GCC 15. Should be terminating NUL, not new line. > > Signed-off-by: Brahmajit Das <brahmajit.xyz@gmail.com> > --- > drivers/gpu/drm/display/drm_dp_dual_mode_helper.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/display/drm_dp_dual_mode_helper.c b/drivers/gpu/drm/display/drm_dp_dual_mode_helper.c > index 14a2a8473682..295375868db6 100644 > --- a/drivers/gpu/drm/display/drm_dp_dual_mode_helper.c > +++ b/drivers/gpu/drm/display/drm_dp_dual_mode_helper.c > @@ -160,11 +160,12 @@ EXPORT_SYMBOL(drm_dp_dual_mode_write); > > static bool is_hdmi_adaptor(const char hdmi_id[DP_DUAL_MODE_HDMI_ID_LEN]) > { > - static const char dp_dual_mode_hdmi_id[DP_DUAL_MODE_HDMI_ID_LEN] = > + //+1 to avaoid spurious -Werror=unterminated-string-initialization warning If we added comments for every little thing like this, there'd be more comments than code. ;) > + static const char dp_dual_mode_hdmi_id[DP_DUAL_MODE_HDMI_ID_LEN + 1] = > "DP-HDMI ADAPTOR\x04"; > > return memcmp(hdmi_id, dp_dual_mode_hdmi_id, > - sizeof(dp_dual_mode_hdmi_id)) == 0; > + DP_DUAL_MODE_HDMI_ID_LEN) == 0; > } > > static bool is_type1_adaptor(uint8_t adaptor_id)
On Wed, Oct 02, 2024 at 11:26:10AM +0300, Jani Nikula wrote: > On Tue, 01 Oct 2024, Brahmajit Das <brahmajit.xyz@gmail.com> wrote: > > GCC 15 enables -Werror=unterminated-string-initialization by default. > > This results in the following build error > > > > drivers/gpu/drm/display/drm_dp_dual_mode_helper.c: In function ‘is_hdmi_adaptor’: > > drivers/gpu/drm/display/drm_dp_dual_mode_helper.c:164:17: error: initializer-string for array of > > ‘char’ is too long [-Werror=unterminated-string-initialization] > > 164 | "DP-HDMI ADAPTOR\x04"; > > | ^~~~~~~~~~~~~~~~~~~~~ > > > > After discussion with Ville, the fix was to increase the size of > > dp_dual_mode_hdmi_id array by one, so that it can accommodate the new > > line character. This should let us build the kernel with GCC 15. > > Should be terminating NUL, not new line. > > > > > Signed-off-by: Brahmajit Das <brahmajit.xyz@gmail.com> > > --- > > drivers/gpu/drm/display/drm_dp_dual_mode_helper.c | 5 +++-- > > 1 file changed, 3 insertions(+), 2 deletions(-) > > > > diff --git a/drivers/gpu/drm/display/drm_dp_dual_mode_helper.c b/drivers/gpu/drm/display/drm_dp_dual_mode_helper.c > > index 14a2a8473682..295375868db6 100644 > > --- a/drivers/gpu/drm/display/drm_dp_dual_mode_helper.c > > +++ b/drivers/gpu/drm/display/drm_dp_dual_mode_helper.c > > @@ -160,11 +160,12 @@ EXPORT_SYMBOL(drm_dp_dual_mode_write); > > > > static bool is_hdmi_adaptor(const char hdmi_id[DP_DUAL_MODE_HDMI_ID_LEN]) > > { > > - static const char dp_dual_mode_hdmi_id[DP_DUAL_MODE_HDMI_ID_LEN] = > > + //+1 to avaoid spurious -Werror=unterminated-string-initialization warning > > If we added comments for every little thing like this, there'd be more > comments than code. ;) I asked for a comment, otherwise I suspect I''d end up undoing this after forgetting why it's there. OTOH maybe I'll get the "broken" gcc upgrade before I look at this code again, which would solve that particular problem. > > > + static const char dp_dual_mode_hdmi_id[DP_DUAL_MODE_HDMI_ID_LEN + 1] = > > "DP-HDMI ADAPTOR\x04"; > > > > return memcmp(hdmi_id, dp_dual_mode_hdmi_id, > > - sizeof(dp_dual_mode_hdmi_id)) == 0; > > + DP_DUAL_MODE_HDMI_ID_LEN) == 0; > > } > > > > static bool is_type1_adaptor(uint8_t adaptor_id) > > -- > Jani Nikula, Intel
diff --git a/drivers/gpu/drm/display/drm_dp_dual_mode_helper.c b/drivers/gpu/drm/display/drm_dp_dual_mode_helper.c index 14a2a8473682..295375868db6 100644 --- a/drivers/gpu/drm/display/drm_dp_dual_mode_helper.c +++ b/drivers/gpu/drm/display/drm_dp_dual_mode_helper.c @@ -160,11 +160,12 @@ EXPORT_SYMBOL(drm_dp_dual_mode_write); static bool is_hdmi_adaptor(const char hdmi_id[DP_DUAL_MODE_HDMI_ID_LEN]) { - static const char dp_dual_mode_hdmi_id[DP_DUAL_MODE_HDMI_ID_LEN] = + //+1 to avaoid spurious -Werror=unterminated-string-initialization warning + static const char dp_dual_mode_hdmi_id[DP_DUAL_MODE_HDMI_ID_LEN + 1] = "DP-HDMI ADAPTOR\x04"; return memcmp(hdmi_id, dp_dual_mode_hdmi_id, - sizeof(dp_dual_mode_hdmi_id)) == 0; + DP_DUAL_MODE_HDMI_ID_LEN) == 0; } static bool is_type1_adaptor(uint8_t adaptor_id)
GCC 15 enables -Werror=unterminated-string-initialization by default. This results in the following build error drivers/gpu/drm/display/drm_dp_dual_mode_helper.c: In function ‘is_hdmi_adaptor’: drivers/gpu/drm/display/drm_dp_dual_mode_helper.c:164:17: error: initializer-string for array of ‘char’ is too long [-Werror=unterminated-string-initialization] 164 | "DP-HDMI ADAPTOR\x04"; | ^~~~~~~~~~~~~~~~~~~~~ After discussion with Ville, the fix was to increase the size of dp_dual_mode_hdmi_id array by one, so that it can accommodate the new line character. This should let us build the kernel with GCC 15. Signed-off-by: Brahmajit Das <brahmajit.xyz@gmail.com> --- drivers/gpu/drm/display/drm_dp_dual_mode_helper.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)