On 21/02/2025 10:40, Carlo B. via Cygwin-apps wrote:
Hello,
I'm doing packages for CYGWIN, with updated or missing libraries that
you can find here:

https://github.com/carlo-bramini/packages-cygwin

While doing this task, I got troubles when using Cygport with Meson.
If I create packages for CYGWIN, x86_64 or i686, I works fine.
But if I create packages by using cross compilers, in other words
NOARCH stuff, it doesn't work.
To be more precise, existing libraries and tools into the sysroot are not found.

Thanks.

Hmm... I don't quite understand why this change has the effect of resolving this problem.

Can you explain?

This is an example output when building librubberband with MinGW cross
compilers:

Run-time dependency fftw3 found: NO (tried pkgconfig and cmake)
Run-time dependency sleef found: NO (tried pkgconfig and cmake)
Run-time dependency sleefdft found: NO (tried pkgconfig and cmake)
Run-time dependency samplerate found: NO (tried pkgconfig and cmake)
Run-time dependency speexdsp found: NO (tried pkgconfig and cmake)

I did a correction to Meson.cygclass and now it works like this:

Run-time dependency fftw3 found: YES 3.3.5
Run-time dependency sleef found: NO (tried pkgconfig and cmake)
Run-time dependency sleefdft found: NO (tried pkgconfig and cmake)
Run-time dependency samplerate found: YES 0.1.8
Run-time dependency speexdsp found: YES 1.2rc3

After applying attached patch, the object files will be generated
inside ${B} rather than into a subdir of ${S}.
I have found no other way to make it working.
But afterall, ${B} exists for this purpose and I don't see a good
reason because ${S} should be polluted with object files.

Yeah, it would be nice if meson worked in the same way as the other build systems.

Unfortunately, this wasn't written by me, and I'd need to go digging through history to discover all the details.

If I recall correctly, it's related to how we use the gcc options -fdebug-prefix-map or -ffile-prefix-map.

(See the thread starting at [1] for a bit of discussion around these options)

Those work (or at least, worked) by string prefix substitution, rather than path manipulation, and the forms of the paths passed to the compiler by (the ninja file generated by) meson aren't amenable the same simple manipulations relative to ${B} as other build systems (e.g. autotools).


So I guess the first question to ask is if you're still getting correct debuginfo package generation with this patch?


[1] https://cygwin.com/pipermail/cygwin-apps/2023-September/043185.html

Reply via email to