felipejfc / xserver-xorg-input-synaptics

Fork from http://cgit.freedesktop.org/xorg/driver/xf86-input-synaptics/
MIT License
16 stars 10 forks source link

Make failing on Ubuntu 15.04 #3

Open amps211 opened 9 years ago

amps211 commented 9 years ago
make[2]: Entering directory '/home/jb/Projects/xserver-xorg-input-synaptics/src'
  CC       synproto.lo
In file included from /usr/include/string.h:634:0,
                 from /usr/include/xorg/os.h:53,
                 from /usr/include/xorg/misc.h:115,
                 from /usr/include/xorg/xf86str.h:37,
                 from /usr/include/xorg/xf86.h:44,
                 from /usr/include/xorg/xf86Xinput.h:54,
                 from synproto.h:36,
                 from synproto.c:24:
/usr/include/xorg/os.h:541:1: error: expected identifier or '(' before '__extension__'
 strndup(const char *str, size_t n);
 ^
Makefile:504: recipe for target 'synproto.lo' failed
make[2]: *** [synproto.lo] Error 1
make[2]: Leaving directory '/home/jb/Projects/xserver-xorg-input-synaptics/src'

Looks like os.h duplicates prototypes for some system functions unless xorg-server.h is included first, according to this discussion http://lists.x.org/archives/xorg-devel/2014-July/043067.html

Currently os.h cannot be included safely (without it creating duplicate prototypes for system functions) without first including one of: dix-config.h xorg-server.h xorg-config.h

mscalone commented 9 years ago

same problem on Ubuntu 15.10. Any workaround?

Anfa-am commented 9 years ago

+1 this, 15.10 trying to build a newer version of the preinstalled driver. Same error.

mdotshell commented 9 years ago

Same issue in 15.10 under Gnome 3.16.4

ruilinchu commented 8 years ago

Same issue in 15.10-gnome

aruth2 commented 8 years ago

The workaround is to add

include

to the top of synproto.h

This let make finish without errors (but with warnings).

Dev-Dipesh commented 8 years ago

Check your error message for file name and line number. In your case -

/usr/include/xorg/os.h:541:1:....

File - os.h File Path - /usr/include/xorg/os.h Line No - 541

Use your favourite text editor to open the file -

sudo vim /usr/include/xorg/os.h

So 541 is the line which is causing issue, comment it. Now you have to comment out line 540 too, why? The reason is it's a combined logic inside the if block as you can see in below:

#ifndef HAVE_STRNDUP <----- If block starts
extrn _X_EXPORT char * <----------- Comment out this line using // in front
strndup(const char *str, size_t n); <----------- Comment out this line using // in front
#endif <------ If blocks ends