pkgsrc-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: devel/pango build failure using clang



Le 29/04/2020 à 09:26, Frédéric Fauberteau a écrit :
> Le 29/04/2020 à 08:54, Frédéric Fauberteau a écrit :
>> Le 29/04/2020 à 08:30, Frédéric Fauberteau a écrit :
>>> Le 28/04/2020 à 18:55, Roland Illig a écrit :
>>>> On 28.04.2020 17:47, Frédéric Fauberteau wrote:
>>>>> I do not really understand why hb.h is not found since '-I/home/triaxx/pkg/include/harfbuzz' is provided to g-ir-scanner. I tried to build devel/pango from an unprivileged bootstrap. The most surprising thing is that I successfully built devel/pango from un privileged bootstrap for the very same version and on the very same system.
>>>>
>>>> Did you follow these instructions already?
>>>>
>>>> https://www.netbsd.org/docs/pkgsrc/fixes.html#fixes.build.header
>>>>
>>>> If it's none of these scenarios, I'll add it to the pkgsrc guide after
>>>> you found out the cause. :)
>>>>
>>>> Roland
>>>
>>> Thank you for your link. It is very instructive. I will give you a feedback when I have found the error.
>>>
>>> Fred
>>
>>
>> I think I have identified the problem with the .work.log file.
>>
>> We can notice in the command line which produces the error message that some -I arguments are provided with the "/home/triaxx/pkg/include" directory while other are provided with the "/usr/home/triaxx/pkg/include". Actually, /home is a symbolic link to /usr/home on FreeBSD. If I manually change "-I/usr/home/triaxx/pkg/include/harfbuzz" to "-I/home/triaxx/pkg/include/harfbuzz" then hb.h is found.
>>
>> Now, I could not explain why hb.h is not found when the canonical path "/usr/home/triaxx/pkg/include/harfbuzz" is provided to the compiler.
>>
>> $ ls -l .buildlink/include/harfbuzz/hb.h 
>> lrwxr-xr-x  1 triaxx  triaxx  38 28 avr.  15:36 .buildlink/include/harfbuzz/hb.h -> /home/triaxx/pkg/include/harfbuzz/hb.h
>>
>> cc -E -I/home/triaxx/pkg/include -I/usr/include -I/home/triaxx/pkg/include/freetype2 -I/home/triaxx/pkg/include/glib-2.0 -I/home/triaxx/pkg/include/gio-unix-2.0 -I/home/triaxx/pkg/lib/glib-2.0/include -I/home/triaxx/pkg/include/python3.8 -D_POSIX_C_SOURCE=200809L -D_POSIX_THREAD_SAFE_FUNCTIONS -D_GNU_SOURCE -D_THREAD_SAFE -D_REENTRANT -I. -I/usr/home/triaxx/.pkgsrc/work/devel/pango/work/pango-1.44.7/output -I/usr/home/triaxx/.pkgsrc/work/devel/pango/work/pango-1.44.7 -I/usr/home/triaxx/.pkgsrc/work/devel/pango/work/pango-1.44.7/output/pango -I/usr/home/triaxx/.pkgsrc/work/devel/pango/work/pango-1.44.7/pango -I/usr/home/triaxx/pkg/include/glib-2.0 -I/usr/home/triaxx/pkg/lib/glib-2.0/include -I/usr/home/triaxx/pkg/include -I/usr/home/triaxx/pkg/include/fribidi -I/usr/home/triaxx/pkg/include/harfbuzz -I/usr/home/triaxx/pkg/include/freetype2 -I/usr/home/triaxx/pkg/include/uuid -I/usr/home/triaxx/pkg/include/cairo -I/usr/home/triaxx/pkg/include/pixman-1 -I/usr/home/triaxx/pkg/include/libpng16 -I/usr/home/triaxx/pkg/include -I/usr/include -I/usr/home/triaxx/pkg/include/freetype2 -I/usr/home/triaxx/pkg/include/glib-2.0 -I/usr/home/triaxx/pkg/include/gio-unix-2.0 -I/usr/home/triaxx/pkg/lib/glib-2.0/include -I/usr/home/triaxx/pkg/include/python3.8 -I/usr/home/triaxx/pkg/include -I/usr/include -I/usr/home/triaxx/pkg/include/freetype2 -I/usr/home/triaxx/pkg/include/glib-2.0 -I/usr/home/triaxx/pkg/include/gio-unix-2.0 -I/usr/home/triaxx/pkg/lib/glib-2.0/include -I/usr/home/triaxx/pkg/include/python3.8 -I/usr/home/triaxx/pkg/include/gobject-introspection-1.0 -o g-ir-cpp-pismx0oi.i -C /usr/home/triaxx/.pkgsrc/work/devel/pango/work/pango-1.44.7/output/g-ir-cpp-pismx0oi.c
> 
> If I compare the command line pasted in my previous message to the one given in output/build.ninja, then I have the feeling that g-ir-scanner resolves the symbolic links of the clfags argument before passing them to cc.
> 
> build pango/Pango-1.0.gir: CUSTOM_COMMAND  | pango/libpango-1.0.so.0.4400.7
>  COMMAND = /home/triaxx/pkg/bin/g-ir-scanner -I/home/triaxx/pkg/include/gobject-introspection-1.0 -I/home/triaxx/pkg/include -I/home/triaxx/pkg/include/glib-2.0 -I/home/triaxx/pkg/lib/glib-2.0/include -pthread --no-libtool --namespace=Pango --nsversion=1.0 --warn-all -    -output pango/Pango-1.0.gir --c-include=pango/pango.h --quiet -I/usr/home/triaxx/.pkgsrc/work/devel/pango/work/pango-1.44.7/pango -I/usr/home/triaxx/.pkgsrc/work/devel/pango/work/pango-1.44.7/output/pango -I./. -I../. -I./pango/. -I../pango/. --filelist=/usr/home/triax    x/.pkgsrc/work/devel/pango/work/pango-1.44.7/output/pango/82b5c0c@@pango-1.0@sha/Pango_1.0_gir_filelist --include=GObject-2.0 --include=cairo-1.0 --symbol-prefix=pango --identifier-prefix=Pango --pkg-export=pango --cflags-begin -D_POSIX_C_SOURCE=200809L -D_POSIX_THREAD    _SAFE_FUNCTIONS -D_GNU_SOURCE -I./. -I../. -I./pango/. -I../pango/. -I/home/triaxx/pkg/include/glib-2.0 -I/home/triaxx/pkg/lib/glib-2.0/include -I/home/triaxx/pkg/include -I/home/triaxx/pkg/include/fribidi -I/home/triaxx/pkg/include/harfbuzz -I/home/triaxx/pkg/include/    freetype2 -I/home/triaxx/pkg/include/uuid -D_THREAD_SAFE -D_REENTRANT -I/home/triaxx/pkg/include/cairo -I/home/triaxx/pkg/include/pixman-1 -I/home/triaxx/pkg/include/libpng16 -I/home/triaxx/pkg/include -I/usr/include -I/home/triaxx/pkg/include/freetype2 -I/home/triaxx/    pkg/include/glib-2.0 -I/home/triaxx/pkg/include/gio-unix-2.0 -I/home/triaxx/pkg/lib/glib-2.0/include -I/home/triaxx/pkg/include/python3.8 -I/home/triaxx/pkg/include -I/usr/include -I/home/triaxx/pkg/include/freetype2 -I/home/triaxx/pkg/include/glib-2.0 -I/home/triaxx/p    kg/include/gio-unix-2.0 -I/home/triaxx/pkg/lib/glib-2.0/include -I/home/triaxx/pkg/include/python3.8 --cflags-end --library pango-1.0 -L/usr/home/triaxx/.pkgsrc/work/devel/pango/work/pango-1.44.7/output/pango -L/home/triaxx/pkg/lib -L/usr/lib --extra-library=m -L/home/    triaxx/pkg/lib --extra-library=glib-2.0 --extra-library=intl --extra-library=gobject-2.0 --extra-library=fribidi --extra-library=harfbuzz --extra-library=fontconfig --extra-library=freetype --extra-library=Xrender --extra-library=X11 --extra-library=Xft --extra-library    =cairo --sources-top-dirs /usr/home/triaxx/.pkgsrc/work/devel/pango/work/pango-1.44.7/subprojects/ --sources-top-dirs /usr/home/triaxx/.pkgsrc/work/devel/pango/work/pango-1.44.7/output/subprojects/

The patch below solves the problem. But I will ask upstream before committing mistakes.

Index: Makefile
===================================================================
RCS file: /cvsroot/pkgsrc/devel/gobject-introspection/Makefile,v
retrieving revision 1.70
diff -r1.70 Makefile
3a4
> PKGREVISION=  1
Index: patches/patch-giscanner_ccompiler.py
===================================================================
RCS file: patches/patch-giscanner_ccompiler.py
diff -N patches/patch-giscanner_ccompiler.py
0a1,13
> $NetBSD$
> 
> --- giscanner/ccompiler.py.orig       2020-04-05 14:08:04.702725000 +0000
> +++ giscanner/ccompiler.py
> @@ -432,7 +432,7 @@ class CCompiler(object):
>          other_options = []
>  
>          for o in options:
> -            option = utils.cflag_real_include_path(o)
> +            option = o
>              if option.startswith('-I'):
>                  includes.append(option[len('-I'):])
>              elif option.startswith('-D'):
Index: patches/patch-giscanner_scannermain.py
===================================================================
RCS file: patches/patch-giscanner_scannermain.py
diff -N patches/patch-giscanner_scannermain.py
0a1,13
> $NetBSD$
> 
> --- giscanner/scannermain.py.orig     2020-04-05 14:08:04.702725000 +0000
> +++ giscanner/scannermain.py
> @@ -52,7 +52,7 @@ def process_cflags_begin(option, opt, value, parser):
>          if arg == "-I" and parser.rargs and parser.rargs[0] != '--cflags-end':
>              # This is a special case where there's a space between -I and the path.
>              arg += parser.rargs.pop(0)
> -        cflags.append(utils.cflag_real_include_path(arg))
> +        cflags.append(arg)
>  
>  
>  def process_cflags_end(option, opt, value, parser):


Home | Main Index | Thread Index | Old Index