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

ppoll is not exist in freebsd system #74

Closed
DachiChang opened this issue Dec 29, 2012 · 17 comments
Closed

ppoll is not exist in freebsd system #74

DachiChang opened this issue Dec 29, 2012 · 17 comments

Comments

@DachiChang
Copy link

compiler error

cc -DNDEBUG -O2 -D_FORTIFY_SOURCE=2 -DCONFIG_LIBCONFIG -DCONFIG_REGEX_PCRE -DCONFIG_REGEX_PCRE_JIT -DCONFIG_VSYNC_DRM -DCONFIG_VSYNC_OPENGL -Wall -std=c99 -o compton compton.o -lm -lrt -L/usr/local/lib -Wl,-R/usr/local/lib -lpcre -lGL -lXcomposite -lXdamage -lXfixes -lXrender -lX11 -lXext -lXrandr -L/usr/local/lib -lconfig
compton.o: In function main': compton.c:(.text+0xa64a): undefined reference toppoll'
gmake: *** [compton] Error 1

so this project is only for linux ???

@richardgv
Copy link
Collaborator

  1. Oh, ppoll() doesn't exist on FreeBSD libc? That sucks. But those ppoll() calls are for --sw-opti (software optimization) only. Unless you have a performance issue and your driver does not support OpenGL VSync, --sw-opti is unnecessary. It's safe to comment out all the software optimization code in evpoll() (all things after // Convert the old timeout to struct timespec. Of course you have to leave a placeholder return statement there.) Please tell me if after commenting out these code, compton still does not work under FreeBSD.
  2. I did intend to support FreeBSD/OpenBSD/NetBSD. I have FreeBSD 9.0 installed, but I don't have time to work on FreeBSD right now. Looks like I have to use kqueue() to replace ppoll() on FreeBSD, which seems pretty tricky to use. I currently have 1,600s+ lines of code (D-Bus support + new condition format) at hand to debug, so... Give me some time, okay?

@richardgv
Copy link
Collaborator

Here's a patch that removes ppoll() calls from compton, if you want a temprorary fix right now. Not actually tested.

diff --git a/src/compton.c b/src/compton.c
index eff195f..4e6840b 100644
--- a/src/compton.c
+++ b/src/compton.c
@@ -4689,33 +4689,10 @@ evpoll(session_t *ps, int timeout) {
   if (!ps->o.sw_opti)
     return poll(&ufd, 1, timeout);

-  // Convert the old timeout to struct timespec
-  struct timespec next_paint_tmout = {
-    .tv_sec = timeout / MS_PER_SEC,
-    .tv_nsec = timeout % MS_PER_SEC * (NS_PER_SEC / MS_PER_SEC)
-  };
-
-  // Get the nanosecond offset of the time when the we reach the timeout
-  // I don't think a 32-bit long could overflow here.
-  long target_relative_offset = (next_paint_tmout.tv_nsec + get_time_timespec().tv_nsec - ps->paint_tm_offset) % NS_PER_SEC;
-  if (target_relative_offset < 0)
-    target_relative_offset += NS_PER_SEC;
-
-  assert(target_relative_offset >= 0);
-
-  // If the target time is sufficiently close to a refresh time, don't add
-  // an offset, to avoid certain blocking conditions.
-  if ((target_relative_offset % NS_PER_SEC) < SW_OPTI_TOLERANCE)
-    return poll(&ufd, 1, timeout);
-
-  // Add an offset so we wait until the next refresh after timeout
-  next_paint_tmout.tv_nsec += lceil_ntimes(target_relative_offset, ps->refresh_intv) - target_relative_offset;
-  if (next_paint_tmout.tv_nsec > NS_PER_SEC) {
-    next_paint_tmout.tv_nsec -= NS_PER_SEC;
-    ++next_paint_tmout.tv_sec;
-  }
+  fprintf(stderr, "--sw-opti support is disabled at compile time.\n");
+  exit(13);

-  return ppoll(&ufd, 1, &next_paint_tmout, NULL);
+  return -1;
 }

 /**

I might come with a better fix later, hmm, if I have the time...

@DachiChang
Copy link
Author

HI, I am very appreciate you help me to make compton can run in Freebsd , but i apply the above of patch, compiling is fine, but that application running is coredump. My Platform is Freebsd 9.1 amd64 release.

debug message below

(gdb) run
Starting program: /usr/home/dachi/compton/compton
(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...[New LWP 100193](no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...
Program received signal SIGSEGV, Segmentation fault.
[Switching to LWP 100193]
0x0000000802674ba1 in pthread_mutexattr_setkind_np () from /lib/libthr.so.3

@richardgv
Copy link
Collaborator

This is a patch to use libevent for the main loop. Within my tests it works on FreeBSD 9.1 amd64. It adds a dependency on devel/libevent2 (actually devel/libevent should work, too).
https://gist.github.com/4434479

I did meet a segfault. It comes from libGL.so in nvidia-drivers-304.64. So this might actually be a nvidia-drivers bug. A workaround is to disable OpenGL VSync support in compton, to avoid linking to nvidia libGL.so:

gmake clean; NO_VSYNC_DRM=1 NO_VSYNC_OPENGL=1 gmake

Are you using nvidia-drivers, too?

Actually this shouldn't be a patch but a commit. But I'm having a bad cold + fever right now. Really I don't have the energy to check for the possible issues in the patch. Nor could I look into the segfault.

If you are still experiencing the segfault after disabling OpenGL VSync at compile time, please build compton with debugging info and obtain a stacktrace with gdb:

$ gmake clean; CFLAGS='-ggdb' NO_VSYNC_DRM=1 NO_VSYNC_OPENGL=1 gmake
$ gdb ./compton
GNU gdb 6.1.1 [FreeBSD]
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "amd64-marcel-freebsd"...
(gdb) r
Starting program: /usr/home/richard/git/compton/compton 
[New LWP 100109]

Program received signal SIGSEGV, Segmentation fault.
[Switching to LWP 100109]
0x00000008026b7ba1 in pthread_mutexattr_setkind_np () from /lib/libthr.so.3
(gdb) bt full
(gdb) bt full
#0  0x00000008026b7ba1 in pthread_mutexattr_setkind_np () from /lib/libthr.so.3
No symbol table info available.
#1  0x0000000800f939b7 in glXCreatePixmap () from /usr/local/lib/libGL.so.1
No symbol table info available.
#2  0x0000000803bea9c3 in ?? () from /usr/local/lib/libnvidia-glcore.so.1
No symbol table info available.
#3  0x0000000803e259ce in _nv013glcore () from /usr/local/lib/libnvidia-glcore.so.1
No symbol table info available.
#4  0x0000000800f783ce in glXCreatePixmap () from /usr/local/lib/libGL.so.1
No symbol table info available.
#5  0x0000000800f78a2f in glXCreatePixmap () from /usr/local/lib/libGL.so.1
# ...

@DachiChang
Copy link
Author

Very thanks richardgv. compiling with "gmake clean; NO_VSYNC_DRM=1 NO_VSYNC_OPENGL=1 gmake" is work. but the patch file have some problem that show in below.

(23:25)-(dachi)-(Elyse)-(~/test) > git clone git://github.com/chjj/compton.git
Cloning into 'compton'...
remote: Counting objects: 1141, done.
remote: Compressing objects: 100% (556/556), done.
remote: Total 1141 (delta 680), reused 1032 (delta 572)
Receiving objects: 100% (1141/1141), 397.37 KiB | 33 KiB/s, done.
Resolving deltas: 100% (680/680), done.
(23:25)-(dachi)-(Elyse)-(~/test) > cd compton/
(23:25)-(dachi)-(Elyse)-(~/test/compton) > cp ../../gist
gist4434479-7f67c7930a1af29675a63df7bc04fca9e1543177.tar.gz  gist4434479-7f67c7930a1af29675a63df7bc04fca9e1543177/
(23:25)-(dachi)-(Elyse)-(~/test/compton) > cp ../../gist4434479-7f67c7930a1af29675a63df7bc04fca9e1543177/compton-libevent.patch .
(23:25)-(dachi)-(Elyse)-(~/test/compton) > patch -p1 < compton-libevent.patch 
Hmm...  Looks like a unified diff to me...
The text leading up to this was:
--------------------------
|diff --git a/Makefile b/Makefile
|index 10e6f17..bc0dcd2 100644
|--- a/Makefile
|+++ b/Makefile
--------------------------
Patching file Makefile using Plan A...
Hunk #1 succeeded at 1.
Hunk #2 failed at 11.
Hunk #3 succeeded at 106.
1 out of 3 hunks failed--saving rejects to Makefile.rej
Hmm...  The next patch looks like a unified diff to me...
The text leading up to this was:
--------------------------
|diff --git a/README.md b/README.md
|index 5d77134..f2d3a8a 100644
|--- a/README.md
|+++ b/README.md
--------------------------
Patching file README.md using Plan A...
Hunk #1 succeeded at 56.
Hmm...  The next patch looks like a unified diff to me...
The text leading up to this was:
--------------------------
|diff --git a/src/compton.c b/src/compton.c
|index eff195f..04a264e 100644
|--- a/src/compton.c
|+++ b/src/compton.c
--------------------------
Patching file src/compton.c using Plan A...
Hunk #1 succeeded at 1196.
Hunk #2 succeeded at 2193.
Hunk #3 succeeded at 2346.
Hunk #4 succeeded at 2388.
Hunk #5 succeeded at 2464.
Hunk #6 succeeded at 2476.
Hunk #7 succeeded at 2816.
Hunk #8 succeeded at 3680.
Hunk #9 succeeded at 3919.
Hunk #10 succeeded at 3938.
Hunk #11 succeeded at 4096.
Hunk #12 succeeded at 4263.
Hunk #13 succeeded at 4296.
Hunk #14 succeeded at 4345.
Hunk #15 succeeded at 4529.
Hunk #16 succeeded at 4658.
Hunk #17 succeeded at 4674.
Hunk #18 succeeded at 4719.
Hunk #19 succeeded at 5028.
Hunk #20 succeeded at 5179.
Hunk #21 succeeded at 5205.
Hunk #22 succeeded at 5357.
Hunk #23 succeeded at 5399.
Hunk #24 succeeded at 5449.
Hunk #25 succeeded at 5563.
Hunk #26 succeeded at 5577.
Hunk #27 succeeded at 5591.
Hunk #28 succeeded at 5613.
Hunk #29 succeeded at 5629.
Hunk #30 succeeded at 5691.
Hmm...  The next patch looks like a unified diff to me...
The text leading up to this was:
--------------------------
|diff --git a/src/compton.h b/src/compton.h
|index 66ed396..4db984a 100644
|--- a/src/compton.h
|+++ b/src/compton.h
--------------------------
Patching file src/compton.h using Plan A...
Hunk #1 succeeded at 54.
Hunk #2 succeeded at 87.
Hunk #3 succeeded at 131.
Hunk #4 succeeded at 155.
Hunk #5 succeeded at 186.
Hunk #6 succeeded at 229.
Hunk #7 succeeded at 304.
Hunk #8 succeeded at 344.
Hunk #9 succeeded at 445.
Hunk #10 succeeded at 469.
Hunk #11 succeeded at 523.
Hunk #12 succeeded at 537.
Hunk #13 succeeded at 573.
Hunk #14 succeeded at 617.
Hunk #15 succeeded at 641.
Hunk #16 succeeded at 708.
Hunk #17 succeeded at 752.
Hunk #18 succeeded at 832.
Hunk #19 succeeded at 859.
Hunk #20 succeeded at 871.
Hunk #21 succeeded at 1043.
Hunk #22 succeeded at 1122.
Hunk #23 succeeded at 1261.
Hunk #24 succeeded at 1369.
Hunk #25 succeeded at 1785.
Hunk #26 succeeded at 2001.
Hunk #27 succeeded at 2064.
Hunk #28 succeeded at 2104.
done

patch makefile have some wrong, but i force make library depend libevent2, and compiling is fine.

by the way, i am using nvidia-driver-304.60 for my video driver. :)

I have other question about screen-flicker. When i dragging file from file manager to other window than screen flicker, my file manager is pcmanfm and it's gtk base, compton is the same as xcompmgr like this issue https://bugs.freedesktop.org/show_bug.cgi?id=35007 ?

error message below

[     5.40 ] error 3 (BadWindow) request 20 minor 0 serial 14425
[     5.40 ] error 3 (BadWindow) request 15 minor 0 serial 14426
[     5.40 ] error 3 (BadWindow) request 2 minor 0 serial 14427
[     5.40 ] error 3 (BadWindow) request 20 minor 0 serial 14430
[     5.40 ] error 3 (BadWindow) request 20 minor 0 serial 14431
[     5.40 ] error 3 (BadWindow) request 141 minor 5 serial 14432
[     5.40 ] error 3 (BadWindow) request 20 minor 0 serial 14433
[     5.40 ] error 3 (BadWindow) request 20 minor 0 serial 14434
[     5.40 ] error 3 (BadWindow) request 20 minor 0 serial 14435
[     5.40 ] error 3 (BadWindow) request 20 minor 0 serial 14436
[     5.40 ] error 3 (BadWindow) request 20 minor 0 serial 14440

@DachiChang
Copy link
Author

i test compton with compton.sample.conf

./compton --config comtopn.sample.conf

it's work fine. compton make me impress ^^

@DachiChang
Copy link
Author

Hi richardgv are you chinese people ? can we make a friend ? i want to build compton as freebsd ports, may be we can discuss by mail. this is my mail femc7488@gmail.com :)

@richardgv
Copy link
Collaborator

Sorry for the late reply. I just want to inform you I'm still watching this issue report, and I'm still having a fever. It isn't wise to discuss anything serious when I feel my brain is floating in the air.

but the patch file have some problem that show in below.

Sorry, I must have done something stupid when running git diff...

I have other question about screen-flicker. When i dragging file from file manager to other window than screen flicker, my file manager is pcmanfm and it's gtk base, compton is the same as xcompmgr like this issue https://bugs.freedesktop.org/show_bug.cgi?id=35007 ?

I use pcmanfm on Linux, too. Never a flickering issue I've noticed. Suspected nVidia binary blob issue again. I will look into this when I feel better.

Huh, are you using --unredir-if-possible, --paint-on-overlay, or --dbe? Playing with different combinations of --paint-on-overlay and --dbe might help. Please try disabling --unredir-if-possibleif you have it enabled.

it's work fine. compton make me impress ^^

Thanks. :-)

Hi richardgv are you chinese people ? can we make a friend ? i want to build compton as freebsd ports, may be we can discuss by mail. this is my mail femc7488@gmail.com :)

Yes, a Chinese. Unless you have something that should not be made public (e.g. report of a security bug), I would prefer you to discuss things on GitHub, though.

@DachiChang
Copy link
Author

Thanks richardgv explain my question. the problem of screen-flicker is gone when i use --paint-on-overlay option.

So the patch for freebsd platform will commit to repo master ? or will fork a branch for this issue ?
if compton is ready run in freebsd, i want to pack it to freebsd ports tree for people who want so awesome compositor.

I will test compton in intel driver with KMS support.

@richardgv
Copy link
Collaborator

Thanks richardgv explain my question. the problem of screen-flicker is gone when i use --paint-on-overlay option.

That's cool! Will add this to FAQ, well, later.

So the patch for freebsd platform will commit to repo master ? or will fork a branch for this issue ?
if compton is ready run in freebsd, i want to pack it to freebsd ports tree for people who want so awesome compositor.

It will go to richardgv-dev branch firstly, and after a few days of tests it will be merged into master. But you may have to wait for some extra days, because, huh, you know why. :-)

And thanks for packing compton. :-)

I will test compton in intel driver with KMS support.

Thanks. :-)

@DachiChang
Copy link
Author

Hi richardgv,

I checkout the branch richardgv-dev last night, but i haven't see any change between master and dev branch. Does the libevent patch merge to richardgv-dev branch ? I can not wait to test richardgv-dev branch with the patch for freebsd intel KMS support :)

@richardgv
Copy link
Collaborator

Huh, DachiChang, have you read my previous replies? I said I'm having a fever. I can't push a new commit when I'm feeling really bad. As what I just said in the last reply:

But you may have to wait for some extra days, because, huh, you know why. :-)

richardgv added a commit that referenced this issue Jan 8, 2013
- Use libevent for main loop. I will explain the reasons in #56 later.
  The preferred libevent version is 2.x, yet 1.4.x should work as well.

- As a result, compton now should build fine on *BSD. Thanks to
  DachiChang for the FreeBSD build issue report.

- Another consequence is we now use microsecond-level timing all the
  way. Nanosecond-level code will be dropped soon. Start using long
  instead of unsigned long to represent time in milliseconds, as both
  can't hold the full epoch time in ms, anyway, and a signed type
  requires less care in subtraction. Wrap the epoch time in ms to 15
  days.

- Fix broken NO_VSYNC_DRM and NO_VSYNC_OPENGL compile-time options.

- Use git revision number for versioning in Makefile, and other small
  improvements.

- Reorganize struct _win. Drop unused w->damaged_sequence. w->damaged is
  turned to bool.

- Add type and format to winprop_t, as preparation for the new condition
  format.

- Add w->shadow_force and w->focus_force, to prepare for D-Bus support.

- Rename wid_get_prop() to wid_get_prop_adv() with more options. Add
  wrapper function wid_get_prop().

- Add some extra helper functions, for D-Bus support later.

- Make some functions return a bool value to indicate if it's
  successful.

- Modify add_win(), use a static const structure to initialize the new
  struct _win.

- Add some helper macros, like printf_err(f)(q). Make some errors fatal.

- Rename some types, constants, and functions. Code clean-up.

- Check for time disorder in paint_preprocess() when calculating fading
  steps.

- Rename evpoll() to swopti_handle_timeout(), and partially rewrite it.

- Make -h / --help legal.

- Known issue: compton segfaults on FreeBSD with nvidia-drivers, unless
  NO_VSYNC_OPENGL is used. Will look into it later. Thamls to DachiChang
  for reporting.
@richardgv
Copy link
Collaborator

So, finally, I've pushed this thing to richardgv-dev branch. Too slow indeed. :-)

Now starting to play with the segfault issue...

By the way, sorry if I was appearing rude when I was ill.

By the way 2, are there any NetBSD users around that could test compton on the platform?

@DachiChang
Copy link
Author

I'm sorry for urge you, even you having a fever. because compton make me exciting, that i want to pack port of freebsd for it as soon. thanks a lot richardgv.

@richardgv
Copy link
Collaborator

Okay, I got something regarding the segfault: Seemingly, when you link to libGL and other libraries in a specific order, nvidia-drivers' libGL crashes the application -- regardless of whether you are using libGL calls in the application. From my tests, libGL does not like -lrt or -lpcre to stay in front of it.

For example, to compile a simple test program with clang. The test program does nothing other than returning a "0". If you compile this way:

clang test.c -L/usr/local/lib -lGL -lrt

The program works. This way:

clang test.c -L/usr/local/lib -lrt -lGL

The program crashes.

The actual reason might be hidden in the deep layers of the ELF format. I don't have the required knowledge to figure out what the hell is going on, but I could adjust the order of libraries.

Here's a patch that changes the library linking order (among other things), to be applied on the top of richardgv-dev branch. Please try to compile this without disabling OpenGL VSync support and check if it still segfaults:

diff --git a/Makefile b/Makefile
index ba47769..32760f2 100644
--- a/Makefile
+++ b/Makefile
@@ -8,7 +8,7 @@ BINDIR ?= $(PREFIX)/bin
 MANDIR ?= $(PREFIX)/share/man/man1

 PACKAGES = x11 xcomposite xfixes xdamage xrender xext xrandr
-LIBS = -lm -lrt
+LIBS = -lm
 INCS =

 # === Configuration flags ===
@@ -22,11 +22,11 @@ ifeq "$(shell pkg-config --modversion --print-errors libevent)" ""
   CFG += -DCONFIG_LIBEVENT_LEGACY
   LIBS += -levent
 else
-  # Using pkg-config for linking with libevent will result in linking with
-  # libevent.so instead of the smaller libevent_core.so. But FreeBSD keeps
-  # libevent2 .so files at a separate place, and we must learn it from
-  # pkg-config.
-  LIBS += $(shell pkg-config --libs libevent)
+  # Using pkg-config --libs for linking with libevent will result in
+  # linking with libevent.so instead of the smaller libevent_core.so.
+  # FreeBSD keeps libevent2 .so files at a separate place, and we must
+  # learn it from pkg-config.
+  LIBS += $(shell pkg-config --libs-only-L libevent) -levent_core
   INCS += $(shell pkg-config --cflags libevent)
 endif

@@ -58,7 +58,7 @@ endif
 # ==== OpenGL VSync ====
 ifeq "$(NO_VSYNC_OPENGL)" ""
   CFG += -DCONFIG_VSYNC_OPENGL
-  LIBS += -lGL
+  LIBS := -lGL $(LIBS)
 endif

 # ==== D-Bus ====

I'm sorry for urge you, even you having a fever. because compton make me exciting, that i want to pack port of freebsd for it as soon. thanks a lot richardgv.

Never mind. I'm feeling a lot more better today. And I'm glad you are happy about the software. :-)

By the way, my screen flickers, too, when dragging things in pcmanfm under FreeBSD (but no flickering under Gentoo). I will look into this later.

@DachiChang
Copy link
Author

i got a debug message below

[   430.30 ] error 4 (BadPixmap) request 54 minor 0 serial 899030
[   430.30 ] error 172 (BadPicture) request 151 minor 7 serial 899032
[   438.96 ] error 9 (BadDrawable) request 151 minor 4 serial 941642
[   438.96 ] error 172 (BadPicture) request 151 minor 8 serial 941742
[   438.96 ] error 172 (BadPicture) request 151 minor 8 serial 941885
[   438.97 ] error 172 (BadPicture) request 151 minor 8 serial 942145
[   439.01 ] error 172 (BadPicture) request 151 minor 8 serial 942385
[   439.02 ] error 172 (BadPicture) request 151 minor 8 serial 942615
[   439.03 ] error 172 (BadPicture) request 151 minor 8 serial 942845
[   439.04 ] error 172 (BadPicture) request 151 minor 8 serial 943075
[   439.05 ] error 172 (BadPicture) request 151 minor 8 serial 943305
[   439.06 ] error 172 (BadPicture) request 151 minor 8 serial 943535
[   439.07 ] error 172 (BadPicture) request 151 minor 8 serial 943765
[   439.08 ] error 172 (BadPicture) request 151 minor 8 serial 943995
[   439.09 ] error 172 (BadPicture) request 151 minor 8 serial 944225
[   439.10 ] error 172 (BadPicture) request 151 minor 8 serial 944455
[   439.11 ] error 172 (BadPicture) request 151 minor 8 serial 944598
[   439.12 ] error 4 (BadPixmap) request 54 minor 0 serial 944639
[   439.12 ] error 172 (BadPicture) request 151 minor 7 serial 944641

when i use ibus input method typing and submit the buffer of string. is this normal ???

@richardgv
Copy link
Collaborator

@DachiChang:

Have you read my last reply above and tried the patch, DachiChang?

i got a debug message below

...

when i use ibus input method typing and submit the buffer of string. is this normal ???

Well, in fact those messages could pop up whenever compton meets a race condition and requests a Pixmap or Picture of an unmapped/destroyed window. As explained in #52, this is generally harmless, and this is caused by Xlib itself, and what we could do is very limited, I guess. I might be able to reduce the number of those X errors if I port compton to XCB later, but I cannot guarantee it's possible to eliminate those things. Please tell us if something more than error messages appear.

I did look into pcmanfm drag-n-drop window issue, and unfortunately, it's so time-sensitive that whenever I enable any debugging options, the issue disappear. :-S

By the way, as a fcitx user I haven't noticed a similar problem with fcitx.

By the way 2, it's generally a good idea to avoid staying up at midnight (assuming you are in GMT+8).

@richardgv richardgv mentioned this issue Jan 9, 2013
richardgv added a commit that referenced this issue Jan 9, 2013
- (Hopefully) fix all incorrect handling of w->a.border_width in compton
  (#77). Thanks to baskerville for reporting.

- Attempt to fix #73 by correcting a mistake that window data is fetched
  from the wrong function. Thanks to zakkak.

- Add git commit/tag detection to Makefile for automatic versioning.

- Change -lGL linking order, to fix a segmentation fault caused by
  something in nvidia-drivers under FreeBSD, mentioned in #74. Thanks
  for the report from DachiChang.

- Link to -levent_core instead of -levent in Makefile. We might move to
  libev soon, though.

- Increase SWOPTI_TOLERANCE to handle the extraordinary delay of
  kqueue() under FreeBSD. Thanks for DachiChang's report.

- Add helper function dump_drawable() for debugging.

- Replace XInternAtom() calls with get_atom().

- Remove -lrt as it's unneeded.
saulocastelo pushed a commit to saulocastelo/compton that referenced this issue Jan 9, 2019
Fix compile errors triggered by vsync-drm option
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

No branches or pull requests

2 participants