-
Notifications
You must be signed in to change notification settings - Fork 1.7k
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
wrong header location for pthreads-headers (while building quake3) #34
Comments
Quake include path in build file has been updated. |
I got similar issues while compiling Hexxeh's despotify for RPi. vcos_platform_types.h: file not found |
This is an issue with the paths in the firmware includes, not in Quake3. Please fix it. Since "pthreads/vcos_platform.h" demands to be included from vcos.h, you should have the correct path IN vcos.h QUOTE: "Do not include this file directly - instead include it via vcos.h" |
QUOTE: "Do not include this file directly - instead include it via vcos.h" |
Why isn't vcos/vcos_types.h changed with the correct path to vcos_platform_types.h. Obviously there is always the option of adding additional include paths but why not fix it in vcos_types.h? ah |
Because this software comes from a common tree that supports other OS targets that are not pthreads. |
Thank you. I understand. |
You are advocating the use of a non-standard include path. This is very bad practice. Instead, the number of include paths should be minimized and the paths should be hardcoded. If you want to use different headers on different platforms, #ifdefs should be used to point to the right file. |
The SDK is broken and the bug still valid IMO. No matter where the sources comes from, it's broken as you can't just include egl.h without adding a "magic directory" in your include path. |
You can use a "sed" to find and replace:
Maybe you will need to do it recursively like this: http://stackoverflow.com/questions/1583219/awk-sed-how-to-do-a-recursive-find-replace-of-a-string |
I have the following packages in OpenEmbedded failing to build due to this issue: mesa-demos 0.8.1 They just include "EGL/egl.h" which is found ok so they have the correct include paths for this header. Therefore the header should work. It shouldn't rely on an extra include path being added just for raspberrypi in software which is written to support many platforms. The argument
Can be applied to the software which includes "EGL/egl.h" as well. Is there any way we can find a fix that works for everyone? Perhaps symlinking to the headers in the pthreads directory from the parent directory? Or adding some ifdefs into the vcos headers? Thanks, Paul Barker |
Or maybe solve this with a "platform" symlink that is set at build time depending on the host you're building for, so on ARM it is linked to "pthreads" and on the GPU it is linked to a different directory. Thus it's all handled during the build of the firmware and applications which reference "EGL/egl.h" don't have to worry about it. |
The eglglessink needs to be built to target the Raspberry Pi or it will seg-fault in use. Autoconf attempts to detect whether to build for RPi but there are some include files needed, the search path to which must be specified. ref: raspberrypi/firmware#34 ref: raspberrypi/firmware#99 This patch adds the needed include paths and forces the plugin to be built for Raspberry Pi. Change-Id: Iffa79dfa9d9e852848ab1ab70a58c124567b7298 Signed-off-by: Alex J Lennon <[email protected]>
The eglglessink needs to be built to target the Raspberry Pi or it will seg-fault in use. Autoconf attempts to detect whether to build for RPi but there are some include files needed, the search path to which must be specified. ref: raspberrypi/firmware#34 ref: raspberrypi/firmware#99 This patch adds the needed include paths and forces the plugin to be built for Raspberry Pi. With this patch the following pipeline works on RPi, modprobe bcm2835-v4l2 gst_v4l2src_is_broken=1 gst-launch-1.0 --gst-debug-no-color v4l2src \ ! 'video/x-raw,format=RGB,width=1280,height=720,framerate=(fraction)30/1' \ ! eglglessink max-lateness=-1 Change-Id: Iabd93c0601c2ab898de3352a7d30423ef9cfce43 Signed-off-by: Alex J Lennon <[email protected]>
The eglglessink needs to be built to target the Raspberry Pi or it will seg-fault in use. Autoconf attempts to detect whether to build for RPi but there are some include files needed, the search path to which must be specified. ref: raspberrypi/firmware#34 ref: raspberrypi/firmware#99 This patch adds the needed include paths and forces the plugin to be built for Raspberry Pi. With this patch the following pipeline works on RPi, modprobe bcm2835-v4l2 gst_v4l2src_is_broken=1 gst-launch-1.0 --gst-debug-no-color v4l2src \ ! 'video/x-raw,format=RGB,width=1280,height=720,framerate=(fraction)30/1' \ ! eglglessink max-lateness=-1 Change-Id: Iabd93c0601c2ab898de3352a7d30423ef9cfce43 Signed-off-by: Alex J Lennon <[email protected]>
why is this closed? it's still an issue |
Please reopen. This is still a bug, here are simple steps to reproduce e.g. for attaching to raspberry pi unit test suites:
Observed: The compilation fails with the error message
Expected: As per the EGL spec, the above code should compile without an error. |
Running the following (blunt but functional) script on the command line fixes the headers for me:
There may be more, I just replaced the ones that the compiler complained about when including |
I've been trying to compile gst-plugins-bad's OpenGL sink with EGL support as well, and had a really hard time making the ./configure checks pass. So far i succeeded by linking to several folders manually (as below): The sed command above didn't do it. |
…Raspberry Pi The eglglessink needs to be built to target the Raspberry Pi or it will seg-fault in use. Autoconf attempts to detect whether to build for RPi but there are some include files needed, the search path to which must be specified. ref: raspberrypi/firmware#34 ref: raspberrypi/firmware#99 This patch adds the needed include paths and forces the plugin to be built for Raspberry Pi. With this patch the following pipeline works on RPi, modprobe bcm2835-v4l2 gst_v4l2src_is_broken=1 gst-launch-1.0 --gst-debug-no-color v4l2src \ ! 'video/x-raw,format=RGB,width=1280,height=720,framerate=(fraction)30/1' \ ! eglglessink max-lateness=-1 Change-Id: Iabd93c0601c2ab898de3352a7d30423ef9cfce43 Signed-off-by: Alex J Lennon <[email protected]>
while compiling quake3 on the raspbian distrib i encountered build errors due to a missing vcos_platform_types.h / vcos_platform.h
first fix was in opt/vc/include/interface/vcos/vcos_types.h:
second fix would be in all the opt/vc/include/interface/vcos/vcos*.h:
but being the lazy fool that i am i just copied the files from the pthreads subfolder there, after noticing that grep gave me to many files to fix that in :-P
i guess this would be just a very dirty fix because noone else reported it yet, and so might even be fixed by some makefile magic or the like in the quake3 repository? i can't imagine this problem to be a global one, probably also just tied to quake3+raspbian?
(i use the raspbian-r3.img from hexxeh)
anyways, with the above mentioned actions quake3 builds again...
The text was updated successfully, but these errors were encountered: