[sane-devel] [PATCH] undef linux before defining STRINGIFY
Olaf Meeuwissen
olaf.meeuwissen at avasys.jp
Tue Jun 9 23:23:20 UTC 2015
Niels Ole Salscheider writes:
> Am 2015-06-09 14:21, schrieb m. allan noah:
>> We need more info here. Where do you see this expansion problem?
>>
>> allan
>
> The problem is that LIBDIR is passed as a define from the build system.
> Then, STRINGIFY(LIBDIR) is used in backend/dll.c to get a string of the
> search path for the backends.
> This seems to be fine but it can become a problem since "linux" is
> definded to "1" by default.
>
> This causes an issue on e. g. Exherbo, my linux distribution. Exherbo
> installs all packages to /usr/target-triplet/{bin,lib,include,...} so
> that you can have packages for different architectures on the same root.
> On my system, sane would be installed to /usr/x86_64-pc-linux-gnu/...,
> so that LIBDIR would be defined to be /usr/x86_64-pc-linux-gnu/lib.
> But now, STRINGIFY(LIBDIR) turns this into /usr/x86_64-pc-1-gnu/lib
> (since it also expands linux) - and as a result, sane cannot find any
> backends.
Rather than willy-nilly undefine `linux` (unconditionally at that) in
include/sane/sanei.h without really knowing what else might break ;-),
I would remove the `STRINGIFY()` calls from backend/dll.c. The build
system passes LIBDIR as a properly quoted string already with a
-DLIBDIR="$(libdir)/sane"
in AM_CPPFLAGS in backend/Makefile.am.
Hope this helps,
--
Olaf Meeuwissen, LPIC-2 FLOSS Engineer -- AVASYS CORPORATION
FSF Associate Member #1962 Help support software freedom
http://www.fsf.org/jf?referrer=1962
More information about the sane-devel
mailing list