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 build from source on archlinux #171

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

UnkDevE
Copy link

@UnkDevE UnkDevE commented Aug 10, 2020

While compiling from source, I ran into a few errors,

some header files were missing from glfft and there was a multiple definitions error with the function pointers in glava.h.

adding the headers missing and making the function pointers static fix the problem.

However there are warnings from the function pointers, so I'm unsure whether using static was the right option.

Here are the warnings:

/home/ethan/projects/C/glava/glava/glava.h:17:1: warning: ‘visibility’ attribute ignored [-Wattributes]
   17 | __attribute__((noreturn, visibility("default"))) static void (*glava_abort)            (void);
      | ^~~~~~~~~~~~~
/home/ethan/projects/C/glava/glava/glava.h:18:1: warning: ‘visibility’ attribute ignored [-Wattributes]
   18 | __attribute__((noreturn, visibility("default"))) static void (*glava_return)           (void);
      | ^~~~~~~~~~~~~
/home/ethan/projects/C/glava/glava/glava.h:18:64: warning: ‘glava_return’ defined but not used [-Wunused-variable]
   18 | __attribute__((noreturn, visibility("default"))) static void (*glava_return)           (void);
      |                                                                ^~~~~~~~~~~~
/home/ethan/projects/C/glava/glava/glava.h:17:64: warning: ‘glava_abort’ defined but not used [-Wunused-variable]
   17 | __attribute__((noreturn, visibility("default"))) static void (*glava_abort)            (void);
      |                                                                ^~~~~~~~~~~
[5/19] Compiling C object libglava.so.p/glava_glava.c.o
In file included from ../glava/render.h:8,
                 from ../glava/glava.c:18:
../glava/glava.h:17:1: warning: ‘visibility’ attribute ignored [-Wattributes]
   17 | __attribute__((noreturn, visibility("default"))) static void (*glava_abort)            (void);
      | ^~~~~~~~~~~~~
../glava/glava.h:18:1: warning: ‘visibility’ attribute ignored [-Wattributes]
   18 | __attribute__((noreturn, visibility("default"))) static void (*glava_return)           (void);
      | ^~~~~~~~~~~~~
../glava/glava.c:79:1: warning: ‘visibility’ attribute ignored [-Wattributes]
   79 | __attribute__((noreturn, visibility("default"))) static void (*glava_return)     (void) = glava_return_builtin;
      | ^~~~~~~~~~~~~
../glava/glava.c:80:1: warning: ‘visibility’ attribute ignored [-Wattributes]
   80 | __attribute__((noreturn, visibility("default"))) static void (*glava_abort)      (void) = glava_abort_builtin;
      | ^~~~~~~~~~~~~
[6/19] Compiling C object libglava.so.p/glava_xwin.c.o
In file included from ../glava/render.h:8,
                 from ../glava/xwin.c:29:
../glava/glava.h:17:1: warning: ‘visibility’ attribute ignored [-Wattributes]
   17 | __attribute__((noreturn, visibility("default"))) static void (*glava_abort)            (void);
      | ^~~~~~~~~~~~~
../glava/glava.h:18:1: warning: ‘visibility’ attribute ignored [-Wattributes]
   18 | __attribute__((noreturn, visibility("default"))) static void (*glava_return)           (void);
      | ^~~~~~~~~~~~~
../glava/glava.h:18:64: warning: ‘glava_return’ defined but not used [-Wunused-variable]
   18 | __attribute__((noreturn, visibility("default"))) static void (*glava_return)           (void);
      |                                                                ^~~~~~~~~~~~
[7/19] Compiling C object libglava.so.p/glava_glx_wcb.c.o
In file included from ../glava/render.h:8,
                 from ../glava/glx_wcb.c:25:
../glava/glava.h:17:1: warning: ‘visibility’ attribute ignored [-Wattributes]
   17 | __attribute__((noreturn, visibility("default"))) static void (*glava_abort)            (void);
      | ^~~~~~~~~~~~~
../glava/glava.h:18:1: warning: ‘visibility’ attribute ignored [-Wattributes]
   18 | __attribute__((noreturn, visibility("default"))) static void (*glava_return)           (void);
      | ^~~~~~~~~~~~~
../glava/glava.h:18:64: warning: ‘glava_return’ defined but not used [-Wunused-variable]
   18 | __attribute__((noreturn, visibility("default"))) static void (*glava_return)           (void);
      |                                                                ^~~~~~~~~~~~
[8/19] Compiling C object libglava-obs.so.p/glava-obs_entry.c.o
In file included from ../glava-obs/entry.c:7:
../glava-obs/../glava/glava.h:17:1: warning: ‘visibility’ attribute ignored [-Wattributes]
   17 | __attribute__((noreturn, visibility("default"))) static void (*glava_abort)            (void);
      | ^~~~~~~~~~~~~
../glava-obs/../glava/glava.h:18:1: warning: ‘visibility’ attribute ignored [-Wattributes]
   18 | __attribute__((noreturn, visibility("default"))) static void (*glava_return)           (void);
      | ^~~~~~~~~~~~~
../glava-obs/../glava/glava.h:18:64: warning: ‘glava_return’ defined but not used [-Wunused-variable]
   18 | __attribute__((noreturn, visibility("default"))) static void (*glava_return)           (void);
      |                                                                ^~~~~~~~~~~~
../glava-obs/../glava/glava.h:17:64: warning: ‘glava_abort’ defined but not used [-Wunused-variable]
   17 | __attribute__((noreturn, visibility("default"))) static void (*glava_abort)            (void);
      |                                                                ^~~~~~~~~~~
[10/19] Compiling C object libglava.so.p/glava_glsl_ext.c.o
In file included from ../glava/glsl_ext.c:16:
../glava/glava.h:17:1: warning: ‘visibility’ attribute ignored [-Wattributes]
   17 | __attribute__((noreturn, visibility("default"))) static void (*glava_abort)            (void);
      | ^~~~~~~~~~~~~
../glava/glava.h:18:1: warning: ‘visibility’ attribute ignored [-Wattributes]
   18 | __attribute__((noreturn, visibility("default"))) static void (*glava_return)           (void);
      | ^~~~~~~~~~~~~
../glava/glava.h:18:64: warning: ‘glava_return’ defined but not used [-Wunused-variable]
   18 | __attribute__((noreturn, visibility("default"))) static void (*glava_return)           (void);
      |                                                                ^~~~~~~~~~~~
[13/19] Compiling C object libglava.so.p/glava_render.c.o
In file included from ../glava/render.h:8,
                 from ../glava/render.c:20:
../glava/glava.h:17:1: warning: ‘visibility’ attribute ignored [-Wattributes]
   17 | __attribute__((noreturn, visibility("default"))) static void (*glava_abort)            (void);
      | ^~~~~~~~~~~~~
../glava/glava.h:18:1: warning: ‘visibility’ attribute ignored [-Wattributes]
   18 | __attribute__((noreturn, visibility("default"))) static void (*glava_return)           (void);
      | ^~~~~~~~~~~~~
../glava/glava.h:18:64: warning: ‘glava_return’ defined but not used [-Wunused-variable]
   18 | __attribute__((noreturn, visibility("default"))) static void (*glava_return)           (void);
      |                      

Copy link

@jwakely jwakely left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks wrong, the variables should be extern and defined in exactly one .c file. #185 does it right.

For why a fix is needed for GCC 10, see the changes for -fno-common in the GCC 10 release notes and Porting to GCC 10 page.

@UnkDevE
Copy link
Author

UnkDevE commented Dec 10, 2021 via email

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.

2 participants