tech-toolchain archive

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

gcc 5 fixing: removing inline



I had to fix wip/taisei to build with gcc-5, see below, but I don't
understand why I had to remove the inlines.

Can someone please explain it to me?

Errors were:
[100%] Linking C executable taisei
/scratch/wip/taisei/work/.buildlink/lib/libopenal.so: warning: warning: reference to compatibility select(); include <sys/select.h> to generate correct reference
/usr/pkg/lib/libxshmfence.so.1: warning: warning: mktemp() possibly used unsafely, use mkstemp() or mkdtemp()
CMakeFiles/taisei.dir/stage.c.o: In function `stage_draw':
stage.c:(.text+0x1794): undefined reference to `frand'
stage.c:(.text+0x17a6): undefined reference to `frand'
stage.c:(.text+0x17e2): undefined reference to `frand'
CMakeFiles/taisei.dir/player.c.o: In function `player_death':
player.c:(.text+0x99a): undefined reference to `tsrand_fill'
player.c:(.text+0x9a1): undefined reference to `afrand'
player.c:(.text+0x9c5): undefined reference to `tsrand_a'
player.c:(.text+0xa5f): undefined reference to `rgb'
CMakeFiles/taisei.dir/projectile.c.o: In function `Blast':
projectile.c:(.text+0x1519): undefined reference to `frand'
projectile.c:(.text+0x1524): undefined reference to `frand'
projectile.c:(.text+0x1554): undefined reference to `frand'
projectile.c:(.text+0x155f): undefined reference to `frand'
CMakeFiles/taisei.dir/projectile.c.o: In function `petal_explosion':
projectile.c:(.text+0x1abe): undefined reference to `tsrand_fill'
projectile.c:(.text+0x1ac8): undefined reference to `afrand'
projectile.c:(.text+0x1ad7): undefined reference to `afrand'
projectile.c:(.text+0x1b09): undefined reference to `afrand'
projectile.c:(.text+0x1b19): undefined reference to `afrand'
projectile.c:(.text+0x1b41): undefined reference to `afrand'
CMakeFiles/taisei.dir/projectile.c.o:projectile.c:(.text+0x1b64): more undefined references to `afrand' follow
CMakeFiles/taisei.dir/enemy.c.o: In function `_delete_enemy':
enemy.c:(.text+0x64): undefined reference to `tsrand_fill'
enemy.c:(.text+0x6b): undefined reference to `afrand'
...

Thanks,
 Thomas

----- Forwarded message from Thomas Klausner <wiz%NetBSD.org@localhost> -----

Module Name:	pkgsrc-wip
Committed By:	Thomas Klausner <wiz%NetBSD.org@localhost>
Pushed By:	wiz
Date:		Tue Apr 12 08:41:40 2016 +0200
Changeset:	8128638adb73d26bf0f9ab5f8270b69c8f1ccccd

Modified Files:
	taisei/distinfo
Added Files:
	taisei/patches/patch-src_projectile.h
	taisei/patches/patch-src_random.c
	taisei/patches/patch-src_resource_texture.c
	taisei/patches/patch-src_stageutils.c
	taisei/patches/patch-src_stageutils.h

Log Message:
taisei: fix build with gcc-5

"inline" leads to lots of missing symbols during linking.

To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=8128638adb73d26bf0f9ab5f8270b69c8f1ccccd

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

diffstat:
 taisei/distinfo                             |  5 +++
 taisei/patches/patch-src_projectile.h       | 15 ++++++++
 taisei/patches/patch-src_random.c           | 56 +++++++++++++++++++++++++++++
 taisei/patches/patch-src_resource_texture.c | 15 ++++++++
 taisei/patches/patch-src_stageutils.c       | 15 ++++++++
 taisei/patches/patch-src_stageutils.h       | 15 ++++++++
 6 files changed, 121 insertions(+)

diffs:
diff --git a/taisei/distinfo b/taisei/distinfo
index c48fe73..a80c190 100644
--- a/taisei/distinfo
+++ b/taisei/distinfo
@@ -3,3 +3,8 @@ $NetBSD$
 SHA1 (taisei-v1.0a.tar.gz) = 7b366887b7d2a6281fb8f4a10b6fd00cc87e5200
 RMD160 (taisei-v1.0a.tar.gz) = c7f010e5d64ac106c44157cce0e7e9f27e16fd1d
 Size (taisei-v1.0a.tar.gz) = 91854864 bytes
+SHA1 (patch-src_projectile.h) = a3042d8f78ea127cd2719fd37b6197fed9f3eccd
+SHA1 (patch-src_random.c) = 06be603e05b8ae23f24246c7aa4d23c6f5ed6ed5
+SHA1 (patch-src_resource_texture.c) = 1dfd6677cebc020dbdf05716fc8b358b384b154d
+SHA1 (patch-src_stageutils.c) = 46ec1880eea712138a3d17c2c1de98ce3779418d
+SHA1 (patch-src_stageutils.h) = 0ccae9856d5459d3716478d02edc1af9ac6d44a5
diff --git a/taisei/patches/patch-src_projectile.h b/taisei/patches/patch-src_projectile.h
new file mode 100644
index 0000000..fe2447f
--- /dev/null
+++ b/taisei/patches/patch-src_projectile.h
@@ -0,0 +1,15 @@
+$NetBSD$
+
+Fix build with gcc-5.
+
+--- src/projectile.h.orig	2012-08-10 14:42:54.000000000 +0000
++++ src/projectile.h
+@@ -49,7 +49,7 @@ typedef struct Projectile {
+ } Projectile;
+ 
+ Color *rgba(float r, float g, float b, float a);
+-inline Color *rgb(float r, float g, float b);
++Color *rgb(float r, float g, float b);
+ 
+ #define create_particle3c(n,p,c,d,r,a1,a2,a3) create_particle4c(n,p,c,d,r,a1,a2,a3,0)
+ #define create_particle2c(n,p,c,d,r,a1,a2) create_particle4c(n,p,c,d,r,a1,a2,0,0)
diff --git a/taisei/patches/patch-src_random.c b/taisei/patches/patch-src_random.c
new file mode 100644
index 0000000..db0af72
--- /dev/null
+++ b/taisei/patches/patch-src_random.c
@@ -0,0 +1,56 @@
+$NetBSD$
+
+Fix build with gcc-5.
+
+--- src/random.c.orig	2012-08-10 14:42:54.000000000 +0000
++++ src/random.c
+@@ -33,19 +33,19 @@ int tsrand_p(RandomState *rnd) {
+ 	return (uint32_t)((rnd->z << 16u) + rnd->w) % TSRAND_MAX;
+ }
+ 
+-inline void tsrand_seed(uint32_t seed) {
++void tsrand_seed(uint32_t seed) {
+ 	tsrand_seed_p(tsrand_current, seed);
+ }
+ 
+-inline int tsrand(void) {
++int tsrand(void) {
+ 	return tsrand_p(tsrand_current);
+ }
+ 
+-inline double frand(void) {
++double frand(void) {
+ 	return tsrand()/(double)TSRAND_MAX;
+ }
+ 
+-inline double nfrand(void) {
++double nfrand(void) {
+ 	return frand() * 2 - 1;
+ }
+ 
+@@ -96,21 +96,21 @@ void tsrand_fill_p(RandomState *rnd, int
+ 		tsrand_array[i] = tsrand_p(rnd);
+ }
+ 
+-inline void tsrand_fill(int amount) {
++void tsrand_fill(int amount) {
+ 	tsrand_fill_p(tsrand_current, amount);
+ }
+ 
+-inline int tsrand_a(int idx) {
++int tsrand_a(int idx) {
+ 	if(idx >= tsrand_array_elems || idx < 0)
+ 		errx(-1, "tsrand_a: index out of range (%i / %i)", idx, tsrand_array_elems);
+ 	return tsrand_array[idx];
+ }
+ 
+-inline double afrand(int idx) {
++double afrand(int idx) {
+ 	return tsrand_a(idx)/(double)TSRAND_MAX;
+ }
+ 
+-inline double anfrand(int idx) {
++double anfrand(int idx) {
+ 	return afrand(idx) * 2 - 1;
+ }
+ 
diff --git a/taisei/patches/patch-src_resource_texture.c b/taisei/patches/patch-src_resource_texture.c
new file mode 100644
index 0000000..1e4fd13
--- /dev/null
+++ b/taisei/patches/patch-src_resource_texture.c
@@ -0,0 +1,15 @@
+$NetBSD$
+
+Fix build with gcc-5.
+
+--- src/resource/texture.c.orig	2012-08-10 14:42:54.000000000 +0000
++++ src/resource/texture.c
+@@ -25,7 +25,7 @@ Color *rgba(float r, float g, float b, f
+ 	return clr;
+ }
+ 
+-inline Color *rgb(float r, float g, float b) {
++Color *rgb(float r, float g, float b) {
+ 	return rgba(r, g, b, 1.0);
+ }
+ 
diff --git a/taisei/patches/patch-src_stageutils.c b/taisei/patches/patch-src_stageutils.c
new file mode 100644
index 0000000..86d2ec9
--- /dev/null
+++ b/taisei/patches/patch-src_stageutils.c
@@ -0,0 +1,15 @@
+$NetBSD$
+
+Fix build with gcc-5.
+
+--- src/stageutils.c.orig	2012-08-10 14:42:54.000000000 +0000
++++ src/stageutils.c
+@@ -34,7 +34,7 @@ void set_perspective_viewport(Stage3D *s
+ 	glMatrixMode(GL_MODELVIEW);
+ }
+ 
+-inline void set_perspective(Stage3D *s, float n, float f) {
++void set_perspective(Stage3D *s, float n, float f) {
+ 	set_perspective_viewport(s, n, f, VIEWPORT_X, VIEWPORT_Y, VIEWPORT_W, VIEWPORT_H);
+ }
+ 
diff --git a/taisei/patches/patch-src_stageutils.h b/taisei/patches/patch-src_stageutils.h
new file mode 100644
index 0000000..d43773f
--- /dev/null
+++ b/taisei/patches/patch-src_stageutils.h
@@ -0,0 +1,15 @@
+$NetBSD$
+
+Fix build with gcc-5.
+
+--- src/stageutils.h.orig	2012-08-10 14:42:54.000000000 +0000
++++ src/stageutils.h
+@@ -39,7 +39,7 @@ void init_stage3d(Stage3D *s);
+ void add_model(Stage3D *s, SegmentDrawRule draw, SegmentPositionRule pos);
+ 
+ void set_perspective_viewport(Stage3D *s, float n, float f, int vx, int vy, int vw, int vh);
+-inline void set_perspective(Stage3D *s, float near, float far);
++void set_perspective(Stage3D *s, float near, float far);
+ void draw_stage3d(Stage3D *s, float maxrange);
+ 
+ void free_stage3d(Stage3D *s);


----- End forwarded message -----


Home | Main Index | Thread Index | Old Index