From: jon@ringle.org
To: ptxdist@pengutronix.de
Cc: Jon Ringle <jringle@gridpoint.com>
Subject: [ptxdist] [PATCH] Example minimal project demonstrating glib compile failure with -Wcast-qual
Date: Fri, 30 Oct 2015 11:47:00 -0400 [thread overview]
Message-ID: <1446220020-15812-1-git-send-email-jon@ringle.org> (raw)
From: Jon Ringle <jringle@gridpoint.com>
This minimal project will fail to compile with the following errors due to
-Werror and -Wcast-qual
------------------------
target: glibtest.compile
------------------------
make[1]: Entering directory `/home/local/GRIDPOINT/jringle/code/gpec/ec1k-rootfs/platform-EC1K/build-target/glibtest-1-build'
CC glibtest.o
In file included from /home/local/GRIDPOINT/jringle/code/gpec/ec1k-rootfs/platform-EC1K/sysroot-target/usr/include/glib-2.0/gio/gio.h:164:0,
from /home/local/GRIDPOINT/jringle/code/gpec/ec1k-rootfs/platform-EC1K/sysroot-target/usr/include/libnm/nm-types.h:24,
from /home/local/GRIDPOINT/jringle/code/gpec/ec1k-rootfs/platform-EC1K/sysroot-target/usr/include/libnm/nm-object.h:29,
from /home/local/GRIDPOINT/jringle/code/gpec/ec1k-rootfs/platform-EC1K/sysroot-target/usr/include/libnm/nm-access-point.h:29,
from /home/local/GRIDPOINT/jringle/code/gpec/ec1k-rootfs/platform-EC1K/sysroot-target/usr/include/libnm/NetworkManager.h:26,
from /home/local/GRIDPOINT/jringle/code/gpec/ec1k-rootfs/platform-EC1K/build-target/glibtest-1/glibtest.c:2:
/home/local/GRIDPOINT/jringle/code/gpec/ec1k-rootfs/platform-EC1K/sysroot-target/usr/include/glib-2.0/gio/glistmodel.h: In function 'G_LIST_MODEL':
/home/local/GRIDPOINT/jringle/code/gpec/ec1k-rootfs/platform-EC1K/sysroot-target/usr/include/glib-2.0/gio/glistmodel.h:36:376: error: cast discards '__attribute__((const))' qualifier from pointer target type [-Werror=cast-qual]
G_DECLARE_INTERFACE(GListModel, g_list_model, G, LIST_MODEL, GObject)
^
/home/local/GRIDPOINT/jringle/code/gpec/ec1k-rootfs/platform-EC1K/sysroot-target/usr/include/glib-2.0/gio/glistmodel.h: In function 'G_IS_LIST_MODEL':
/home/local/GRIDPOINT/jringle/code/gpec/ec1k-rootfs/platform-EC1K/sysroot-target/usr/include/glib-2.0/gio/glistmodel.h:36:544: error: cast discards '__attribute__((const))' qualifier from pointer target type [-Werror=cast-qual]
G_DECLARE_INTERFACE(GListModel, g_list_model, G, LIST_MODEL, GObject)
^
/home/local/GRIDPOINT/jringle/code/gpec/ec1k-rootfs/platform-EC1K/sysroot-target/usr/include/glib-2.0/gio/glistmodel.h: In function 'G_LIST_MODEL_GET_IFACE':
/home/local/GRIDPOINT/jringle/code/gpec/ec1k-rootfs/platform-EC1K/sysroot-target/usr/include/glib-2.0/gio/glistmodel.h:36:923: error: cast discards '__attribute__((const))' qualifier from pointer target type [-Werror=cast-qual]
G_DECLARE_INTERFACE(GListModel, g_list_model, G, LIST_MODEL, GObject)
^
In file included from /home/local/GRIDPOINT/jringle/code/gpec/ec1k-rootfs/platform-EC1K/sysroot-target/usr/include/glib-2.0/gio/gio.h:165:0,
from /home/local/GRIDPOINT/jringle/code/gpec/ec1k-rootfs/platform-EC1K/sysroot-target/usr/include/libnm/nm-types.h:24,
from /home/local/GRIDPOINT/jringle/code/gpec/ec1k-rootfs/platform-EC1K/sysroot-target/usr/include/libnm/nm-object.h:29,
from /home/local/GRIDPOINT/jringle/code/gpec/ec1k-rootfs/platform-EC1K/sysroot-target/usr/include/libnm/nm-access-point.h:29,
from /home/local/GRIDPOINT/jringle/code/gpec/ec1k-rootfs/platform-EC1K/sysroot-target/usr/include/libnm/NetworkManager.h:26,
from /home/local/GRIDPOINT/jringle/code/gpec/ec1k-rootfs/platform-EC1K/build-target/glibtest-1/glibtest.c:2:
/home/local/GRIDPOINT/jringle/code/gpec/ec1k-rootfs/platform-EC1K/sysroot-target/usr/include/glib-2.0/gio/gliststore.h: In function 'G_LIST_STORE':
/home/local/GRIDPOINT/jringle/code/gpec/ec1k-rootfs/platform-EC1K/sysroot-target/usr/include/glib-2.0/gio/gliststore.h:36:382: error: cast discards '__attribute__((const))' qualifier from pointer target type [-Werror=cast-qual]
G_DECLARE_FINAL_TYPE(GListStore, g_list_store, G, LIST_STORE, GObject)
^
/home/local/GRIDPOINT/jringle/code/gpec/ec1k-rootfs/platform-EC1K/sysroot-target/usr/include/glib-2.0/gio/gliststore.h: In function 'G_IS_LIST_STORE':
/home/local/GRIDPOINT/jringle/code/gpec/ec1k-rootfs/platform-EC1K/sysroot-target/usr/include/glib-2.0/gio/gliststore.h:36:550: error: cast discards '__attribute__((const))' qualifier from pointer target type [-Werror=cast-qual]
G_DECLARE_FINAL_TYPE(GListStore, g_list_store, G, LIST_STORE, GObject)
^
cc1: all warnings being treated as errors
make[1]: *** [glibtest.o] Error 1
make[1]: Leaving directory `/home/local/GRIDPOINT/jringle/code/gpec/ec1k-rootfs/platform-EC1K/build-target/glibtest-1-build'
make: *** [/home/local/GRIDPOINT/jringle/code/gpec/ec1k-rootfs/platform-EC1K/state/glibtest.compile] Error 2
---
local_src/glibtest/Makefile.am | 27 +++++++++
local_src/glibtest/autogen.sh | 22 +++++++
local_src/glibtest/configure.ac | 68 ++++++++++++++++++++++
local_src/glibtest/glibtest.c | 9 +++
rules/glibtest.in | 9 +++
rules/glibtest.make | 123 ++++++++++++++++++++++++++++++++++++++++
6 files changed, 258 insertions(+)
create mode 100644 local_src/glibtest/Makefile.am
create mode 100755 local_src/glibtest/autogen.sh
create mode 100644 local_src/glibtest/configure.ac
create mode 100644 local_src/glibtest/glibtest.c
create mode 100644 rules/glibtest.in
create mode 100644 rules/glibtest.make
diff --git a/local_src/glibtest/Makefile.am b/local_src/glibtest/Makefile.am
new file mode 100644
index 0000000..aeeec78
--- /dev/null
+++ b/local_src/glibtest/Makefile.am
@@ -0,0 +1,27 @@
+bin_PROGRAMS = \
+ glibtest
+
+AM_CPPFLAGS = \
+ -I$(top_srcdir)/include \
+ -I$(top_builddir)/include \
+ $(GLIB_CFLAGS) \
+ $(NM_CFLAGS)
+
+EXTRA_DIST = \
+ autogen.sh
+
+MAINTAINERCLEANFILES = \
+ configure \
+ aclocal.m4 \
+ Makefile.in
+
+#
+# binary
+#
+glibtest_SOURCES = \
+ glibtest.c
+
+glibtest_LDADD = \
+ $(GLIB_LIBS) \
+ $(NM_LIBS)
+
diff --git a/local_src/glibtest/autogen.sh b/local_src/glibtest/autogen.sh
new file mode 100755
index 0000000..6d1c20a
--- /dev/null
+++ b/local_src/glibtest/autogen.sh
@@ -0,0 +1,22 @@
+#!/bin/bash
+
+#
+# usage:
+#
+# banner <target name>
+#
+banner() {
+ echo
+ TG=`echo $1 | sed -e "s,/.*/,,g"`
+ LINE=`echo $TG |sed -e "s/./-/g"`
+ echo $LINE
+ echo $TG
+ echo $LINE
+ echo
+}
+
+banner "autoreconf"
+
+autoreconf --force --install -Wall || exit $?
+
+banner "Finished"
diff --git a/local_src/glibtest/configure.ac b/local_src/glibtest/configure.ac
new file mode 100644
index 0000000..cb540db
--- /dev/null
+++ b/local_src/glibtest/configure.ac
@@ -0,0 +1,68 @@
+AC_PREREQ([2.69])
+
+AC_INIT([glibtest],[1],[bugs@pengutronix.de])
+AC_CONFIG_SRCDIR([glibtest.c])
+AC_CANONICAL_BUILD
+AC_CANONICAL_HOST
+
+AM_MAINTAINER_MODE
+
+CFLAGS="${CFLAGS} -W -Wall -Wcast-qual"
+
+#
+# libtool library versioning stuff
+#
+# Library code modified: REVISION++
+# Interfaces changed/added/removed: CURRENT++ REVISION=0
+# Interfaces added: AGE++
+# Interfaces removed: AGE=0
+LT_CURRENT=0
+LT_REVISION=0
+LT_AGE=0
+AC_SUBST(LT_CURRENT)
+AC_SUBST(LT_REVISION)
+AC_SUBST(LT_AGE)
+
+
+#
+# Checks for programs.
+#
+AC_PROG_CC
+LT_INIT
+
+AM_INIT_AUTOMAKE([foreign no-exeext dist-bzip2])
+
+PKG_PROG_PKG_CONFIG
+
+PKG_CHECK_MODULES([GLIB], [glib-2.0])
+AC_SUBST([GLIB_CFLAGS])
+AC_SUBST([GLIB_LIBS])
+
+PKG_CHECK_MODULES([NM], [libnm])
+AC_SUBST([NM_CFLAGS])
+AC_SUBST([NM_LIBS])
+
+#
+# Debugging
+#
+AC_MSG_CHECKING([whether to enable debugging])
+AC_ARG_ENABLE(debug,
+ AS_HELP_STRING([--enable-debug], [enable debugging @<:@default=yes@:>@]),
+ [case "$enableval" in
+ y | yes) CONFIG_DEBUG=yes ;;
+ *) CONFIG_DEBUG=no ;;
+ esac],
+ [CONFIG_DEBUG=yes])
+AC_MSG_RESULT([${CONFIG_DEBUG}])
+if test "${CONFIG_DEBUG}" = "yes"; then
+ CFLAGS="${CFLAGS} -Werror -Wsign-compare -Wfloat-equal -Wformat-security -g -O1"
+ AC_DEFINE(DEBUG, 1, [debugging])
+else
+ CFLAGS="${CFLAGS} -O2"
+fi
+
+
+AC_CONFIG_FILES([
+ Makefile
+])
+AC_OUTPUT
diff --git a/local_src/glibtest/glibtest.c b/local_src/glibtest/glibtest.c
new file mode 100644
index 0000000..b5dd21c
--- /dev/null
+++ b/local_src/glibtest/glibtest.c
@@ -0,0 +1,9 @@
+#include <stdio.h>
+#include <NetworkManager.h>
+
+int main(void)
+{
+ printf("hello fish!\n");
+ return 0;
+}
+
diff --git a/rules/glibtest.in b/rules/glibtest.in
new file mode 100644
index 0000000..ad02d55
--- /dev/null
+++ b/rules/glibtest.in
@@ -0,0 +1,9 @@
+## SECTION=project_specific
+
+config GLIBTEST
+ bool
+ select GLIB
+ select NETWORKMANAGER
+ prompt "glibtest"
+ help
+ FIXME
diff --git a/rules/glibtest.make b/rules/glibtest.make
new file mode 100644
index 0000000..10b3512
--- /dev/null
+++ b/rules/glibtest.make
@@ -0,0 +1,123 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2015 by Jon Ringle <jringle@gridpoint.com>
+#
+# See CREDITS for details about who has contributed to this project.
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_GLIBTEST) += glibtest
+
+#
+# Paths and names
+#
+GLIBTEST_VERSION := 1
+GLIBTEST := glibtest-$(GLIBTEST_VERSION)
+GLIBTEST_URL := file://$(PTXDIST_WORKSPACE)/local_src/glibtest
+GLIBTEST_DIR := $(BUILDDIR)/$(GLIBTEST)
+GLIBTEST_BUILD_OOT := YES
+GLIBTEST_LICENSE := unknown
+
+# ----------------------------------------------------------------------------
+# Extract
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/glibtest.extract: $(STATEDIR)/autogen-tools
+
+$(STATEDIR)/glibtest.extract:
+ @$(call targetinfo)
+ @$(call clean, $(GLIBTEST_DIR))
+ @$(call extract, GLIBTEST)
+ cd $(GLIBTEST_DIR) && [ -f configure ] || sh autogen.sh
+ @$(call patchin, GLIBTEST)
+ @$(call touch)
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+#GLIBTEST_CONF_ENV := $(CROSS_ENV)
+
+#
+# autoconf
+#
+GLIBTEST_CONF_TOOL := autoconf
+#GLIBTEST_CONF_OPT := $(CROSS_AUTOCONF_USR)
+
+#$(STATEDIR)/glibtest.prepare:
+# @$(call targetinfo)
+# @$(call world/prepare, GLIBTEST)
+# @$(call touch)
+
+# ----------------------------------------------------------------------------
+# Compile
+# ----------------------------------------------------------------------------
+
+#$(STATEDIR)/glibtest.compile:
+# @$(call targetinfo)
+# @$(call world/compile, GLIBTEST)
+# @$(call touch)
+
+# ----------------------------------------------------------------------------
+# Install
+# ----------------------------------------------------------------------------
+
+#$(STATEDIR)/glibtest.install:
+# @$(call targetinfo)
+# @$(call world/install, GLIBTEST)
+# @$(call touch)
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/glibtest.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, glibtest)
+ @$(call install_fixup, glibtest, PRIORITY, optional)
+ @$(call install_fixup, glibtest, SECTION, base)
+ @$(call install_fixup, glibtest, AUTHOR, "Jon Ringle <jringle@gridpoint.com>")
+ @$(call install_fixup, glibtest, DESCRIPTION, missing)
+
+# #
+# # example code:; copy all libraries, links and binaries
+# #
+
+ @for i in $(shell cd $(GLIBTEST_PKGDIR) && find bin sbin usr/bin usr/sbin -type f); do \
+ $(call install_copy, glibtest, 0, 0, 0755, -, /$$i); \
+ done
+ @for i in $(shell cd $(GLIBTEST_PKGDIR) && find lib usr/lib -name "*.so*"); do \
+ $(call install_copy, glibtest, 0, 0, 0644, -, /$$i); \
+ done
+ @links="$(shell cd $(GLIBTEST_PKGDIR) && find lib usr/lib -type l)"; \
+ if [ -n "$$links" ]; then \
+ for i in $$links; do \
+ from="`readlink $(GLIBTEST_PKGDIR)/$$i`"; \
+ to="/$$i"; \
+ $(call install_link, glibtest, $$from, $$to); \
+ done; \
+ fi
+
+# #
+# # FIXME: add all necessary things here
+# #
+
+ @$(call install_finish, glibtest)
+
+ @$(call touch)
+
+# ----------------------------------------------------------------------------
+# Clean
+# ----------------------------------------------------------------------------
+
+#$(STATEDIR)/glibtest.clean:
+# @$(call targetinfo)
+# @$(call clean_pkg, GLIBTEST)
+
+# vim: syntax=make
--
2.4.1
--
ptxdist mailing list
ptxdist@pengutronix.de
reply other threads:[~2015-10-30 15:47 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1446220020-15812-1-git-send-email-jon@ringle.org \
--to=jon@ringle.org \
--cc=jringle@gridpoint.com \
--cc=ptxdist@pengutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox