Bug 79230 - After upgrade from 10.1.4 to 10.2-rc4 cross-compile fails
Summary: After upgrade from 10.1.4 to 10.2-rc4 cross-compile fails
Status: RESOLVED FIXED
Alias: None
Product: Mesa
Classification: Unclassified
Component: Other (show other bugs)
Version: git
Hardware: Other All
: medium normal
Assignee: mesa-dev
QA Contact:
URL:
Whiteboard:
Keywords: regression
Depends on:
Blocks: 79039
  Show dependency treegraph
 
Reported: 2014-05-25 21:05 UTC by warpme
Modified: 2014-06-20 17:36 UTC (History)
2 users (show)

See Also:
i915 platform:
i915 features:


Attachments
fixing libdrm includes when cross-compile (6.51 KB, text/plain)
2014-05-30 07:54 UTC, warpme
Details

Description warpme 2014-05-25 21:05:19 UTC
Upgrading from 10.1.4 to 10.2-rc4 causes failure with cross-compile with following error:

libtool: compile:  x86_64-minimyth-linux-gnu-gcc -DPACKAGE_NAME=\"Mesa\" -DPACKAGE_TARNAME=\"mesa\" -DPACKAGE_VERSION=\"10.2.0-rc4\" "-DPACKAGE_STRING=\"Mesa 10.2.0-rc4\"" "-DPACKAGE_BUGREPORT=\"https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa\"" -DPACKAGE_URL=\"\" -DPACKAGE=\"mesa\" -DVERSION=\"10.2.0-rc4\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DYYTEXT_POINTER=1 -DHAVE___BUILTIN_BSWAP32=1 -DHAVE___BUILTIN_BSWAP64=1 -DHAVE_PTHREAD=1 -I. -D_GNU_SOURCE -DHAVE_PTHREAD -DHAVE_DLOPEN -DHAVE_POSIX_MEMALIGN -DHAVE_LIBDRM -DHAVE_LIBUDEV -DGLX_INDIRECT_RENDERING -DGLX_DIRECT_RENDERING -DUSE_EXTERNAL_DXTN_LIB=1 -DHAVE_ALIAS -DMESA_EGL_NO_X11_HEADERS -DHAVE_LLVM=0x0304 -DLLVM_VERSION_PATCH=0 -I../../../include -I../../../src/mapi -I../../../src/mapi -I../../../src/mesa -DMAPI_MODE_UTIL -pipe -march=x86-64 -mtune=generic -mfpmath=sse -flto -m64 -Os -Wall -std=c99 -Werror=implicit-function-declaration -Werror=missing-prototypes -fno-strict-aliasing -fno-builtin-memcmp -m64 -MT glapi_nop.lo -MD -MP -MF .deps/glapi_nop.Tpo -c glapi_nop.c  -fPIC -DPIC -o .libs/glapi_nop.o
In file included from glapi_dispatch.c:90:0:
../../../src/mapi/glapi/glapitemp.h:7689:1: error: no previous prototype for 'glPointSizePointerOES' [-Werror=missing-prototypes]
In file included from glapi_dispatch.c:90:0:
../../../src/mapi/glapi/glapitemp.h:9359:1: error: no previous prototype for 'glAlphaFuncx' [-Werror=missing-prototypes]
../../../src/mapi/glapi/glapitemp.h:9373:1: error: no previous prototype for 'glClearColorx' [-Werror=missing-prototypes]
../../../src/mapi/glapi/glapitemp.h:9387:1: error: no previous prototype for 'glClearDepthx' [-Werror=missing-prototypes]
../../../src/mapi/glapi/glapitemp.h:9401:1: error: no previous prototype for 'glColor4x' [-Werror=missing-prototypes]
../../../src/mapi/glapi/glapitemp.h:9415:1: error: no previous prototype for 'glDepthRangex' [-Werror=missing-prototypes]
../../../src/mapi/glapi/glapitemp.h:9429:1: error: no previous prototype for 'glFogx' [-Werror=missing-prototypes]
../../../src/mapi/glapi/glapitemp.h:9443:1: error: no previous prototype for 'glFogxv' [-Werror=missing-prototypes]
../../../src/mapi/glapi/glapitemp.h:9457:1: error: no previous prototype for 'glFrustumf' [-Werror=missing-prototypes]
../../../src/mapi/glapi/glapitemp.h:9471:1: error: no previous prototype for 'glFrustumx' [-Werror=missing-prototypes]
../../../src/mapi/glapi/glapitemp.h:9485:1: error: no previous prototype for 'glLightModelx' [-Werror=missing-prototypes]
../../../src/mapi/glapi/glapitemp.h:9499:1: error: no previous prototype for 'glLightModelxv' [-Werror=missing-prototypes]
../../../src/mapi/glapi/glapitemp.h:9513:1: error: no previous prototype for 'glLightx' [-Werror=missing-prototypes]
../../../src/mapi/glapi/glapitemp.h:9527:1: error: no previous prototype for 'glLightxv' [-Werror=missing-prototypes]
../../../src/mapi/glapi/glapitemp.h:9541:1: error: no previous prototype for 'glLineWidthx' [-Werror=missing-prototypes]
../../../src/mapi/glapi/glapitemp.h:9555:1: error: no previous prototype for 'glLoadMatrixx' [-Werror=missing-prototypes]
../../../src/mapi/glapi/glapitemp.h:9569:1: error: no previous prototype for 'glMaterialx' [-Werror=missing-prototypes]
../../../src/mapi/glapi/glapitemp.h:9583:1: error: no previous prototype for 'glMaterialxv' [-Werror=missing-prototypes]
../../../src/mapi/glapi/glapitemp.h:9597:1: error: no previous prototype for 'glMultMatrixx' [-Werror=missing-prototypes]
../../../src/mapi/glapi/glapitemp.h:9611:1: error: no previous prototype for 'glMultiTexCoord4x' [-Werror=missing-prototypes]
../../../src/mapi/glapi/glapitemp.h:9625:1: error: no previous prototype for 'glNormal3x' [-Werror=missing-prototypes]
../../../src/mapi/glapi/glapitemp.h:9639:1: error: no previous prototype for 'glOrthof' [-Werror=missing-prototypes]
../../../src/mapi/glapi/glapitemp.h:9653:1: error: no previous prototype for 'glOrthox' [-Werror=missing-prototypes]
../../../src/mapi/glapi/glapitemp.h:9667:1: error: no previous prototype for 'glPointSizex' [-Werror=missing-prototypes]
../../../src/mapi/glapi/glapitemp.h:9681:1: error: no previous prototype for 'glPolygonOffsetx' [-Werror=missing-prototypes]
../../../src/mapi/glapi/glapitemp.h:9695:1: error: no previous prototype for 'glRotatex' [-Werror=missing-prototypes]
../../../src/mapi/glapi/glapitemp.h:9709:1: error: no previous prototype for 'glSampleCoveragex' [-Werror=missing-prototypes]
../../../src/mapi/glapi/glapitemp.h:9723:1: error: no previous prototype for 'glScalex' [-Werror=missing-prototypes]
../../../src/mapi/glapi/glapitemp.h:9737:1: error: no previous prototype for 'glTexEnvx' [-Werror=missing-prototypes]
../../../src/mapi/glapi/glapitemp.h:9751:1: error: no previous prototype for 'glTexEnvxv' [-Werror=missing-prototypes]
../../../src/mapi/glapi/glapitemp.h:9765:1: error: no previous prototype for 'glTexParameterx' [-Werror=missing-prototypes]
../../../src/mapi/glapi/glapitemp.h:9779:1: error: no previous prototype for 'glTranslatex' [-Werror=missing-prototypes]
../../../src/mapi/glapi/glapitemp.h:9793:1: error: no previous prototype for 'glClipPlanef' [-Werror=missing-prototypes]
../../../src/mapi/glapi/glapitemp.h:9807:1: error: no previous prototype for 'glClipPlanex' [-Werror=missing-prototypes]
../../../src/mapi/glapi/glapitemp.h:9821:1: error: no previous prototype for 'glGetClipPlanef' [-Werror=missing-prototypes]
../../../src/mapi/glapi/glapitemp.h:9835:1: error: no previous prototype for 'glGetClipPlanex' [-Werror=missing-prototypes]
../../../src/mapi/glapi/glapitemp.h:9849:1: error: no previous prototype for 'glGetFixedv' [-Werror=missing-prototypes]
../../../src/mapi/glapi/glapitemp.h:9863:1: error: no previous prototype for 'glGetLightxv' [-Werror=missing-prototypes]
../../../src/mapi/glapi/glapitemp.h:9877:1: error: no previous prototype for 'glGetMaterialxv' [-Werror=missing-prototypes]
../../../src/mapi/glapi/glapitemp.h:9891:1: error: no previous prototype for 'glGetTexEnvxv' [-Werror=missing-prototypes]
../../../src/mapi/glapi/glapitemp.h:9905:1: error: no previous prototype for 'glGetTexParameterxv' [-Werror=missing-prototypes]
../../../src/mapi/glapi/glapitemp.h:9919:1: error: no previous prototype for 'glPointParameterx' [-Werror=missing-prototypes]
../../../src/mapi/glapi/glapitemp.h:9933:1: error: no previous prototype for 'glPointParameterxv' [-Werror=missing-prototypes]
../../../src/mapi/glapi/glapitemp.h:9947:1: error: no previous prototype for 'glTexParameterxv' [-Werror=missing-prototypes]
mv -f .deps/glapi_getproc.Tpo .deps/glapi_getproc.Plo
Comment 1 Andreas Boll 2014-05-27 07:32:01 UTC
Can you bisect?
Comment 2 warpme 2014-05-30 07:54:06 UTC
Created attachment 100147 [details]
fixing libdrm includes when cross-compile
Comment 3 Emil Velikov 2014-05-30 13:38:44 UTC
(In reply to comment #2)
> Created attachment 100147 [details]
> fixing libdrm includes when cross-compile

Strange, neither of these changes should be needed. When winsys/radeon/drm is build the RADEON_CFLAGS are used which should pick the correct include location from the libdrm-radeon package. Same logic applies to all other cases in the patch.

Most likely your libdrm* packages are not installed correctly and/or pkgconfig is not finding the correct *.pc files. PKG_CONFIG_PATH can help in the latter case.

If that does not help can you bisect this issue ? Providing your configure options (including any additional variables that you've set) will help.
Comment 4 warpme 2014-05-30 20:55:05 UTC
That was my suspect. But 2 things are worth to mention:
-exactly the same environment builds OK with 10.1.4
-I verified pkgconfig.pc for libdrm_radeon:

[piotro@myth-devel-vm pkgconfig]$ cat libdrm_radeon.pc
prefix=/home/piotro/minimyth-dev/images/build/usr
exec_prefix=/home/piotro/minimyth-dev/images/build/usr
libdir=/home/piotro/minimyth-dev/images/build/usr/lib
includedir=/home/piotro/minimyth-dev/images/build/usr/include

Name: libdrm_radeon
Description: Userspace interface to kernel DRM services for radeon
Version: 2.4.54
Libs: -L${libdir} -ldrm_radeon
Cflags: -I${includedir} -I${includedir}/libdrm



My configure options look following:

CONFIGURE_ARGS = $(DIRPATHS) --build=$(GARBUILD) --host=$(GARHOST) \
    --x-includes="$(DESTDIR)$(includedir)" \
    --x-libraries="$(DESTDIR)$(libdir)" \
    --disable-silent-rules \
    $(if $(filter i386  , $(GARCH_FAMILY)),--enable-32-bit) \
    $(if $(filter x86_64, $(GARCH_FAMILY)),--enable-64-bit) \
    --disable-static \
    --enable-shared \
    --disable-debug \
    --disable-mangling \
    --disable-texture-float \
    --enable-asm \
    --disable-selinux \
    --enable-opengl \
    --disable-gles1 \
    --disable-gles2 \
    --disable-openvg \
    --enable-dri \
    --enable-glx \
    --disable-osmesa \
    --disable-gallium-osmesa \
    --disable-egl \
    --enable-xa \
    --disable-gbm \
    --disable-xvmc \
    --enable-vdpau \
    --disable-opencl \
    --disable-opencl-icd \
    --disable-xlib-glx \
    --disable-gallium-egl \
    --disable-gallium-gbm \
    --disable-r600-llvm-compiler \
    --disable-gallium-tests \
    --disable-shared-glapi \
    --disable-dri3 \
    --enable-driglx-direct \
    --disable-glx-tls \
    --enable-gallium-llvm \
    --with-llvm-shared-libs \
    --with-gallium-drivers="i915,r300,r600,radeonsi,svga,swrast" \
    --with-dri-driverdir="$(libdir)/dri" \
    --with-dri-drivers="i915,i965,r200,radeon,swrast" \
    --with-vdpau-libdir="$(libdir)/vdpau" \
    PKG_CONFIG_PATH="$(libdir)/pkgconfig" \
    LIBVA_CFLAGS="$(DESTDIR)$(includedir)" \
    LIBVA_LIBS="$(DESTDIR)$(libdir)" \
    LIBUDEV_CFLAGS="$(DESTDIR)$(includedir)" \
    LIBUDEV_LIBS="$(DESTDIR)$(libdir)" \
    RADEON_CFLAGS="$(DESTDIR)$(includedir)/libdrm" \
    RADEON_LIBS="$(DESTDIR)$(libdir)"

When I remove
    RADEON_CFLAGS="$(DESTDIR)$(includedir)/libdrm" \
    RADEON_LIBS="$(DESTDIR)$(libdir)"

configure fails with:
------------------------
checking for INTEL... yes
checking for RADEON... no
configure: error: Package requirements (libdrm_radeon >= 2.4.54) were not met:

Requested 'libdrm_radeon >= 2.4.54' but version of libdrm_radeon is 2.4.52

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables RADEON_CFLAGS
and RADEON_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
------------------------


libdrm_radeon 2.4.52 is version on host system. Target system has 2.4.54 - so it looks like there is indeed issue related to PKG_CONFIG & libdrm_radeon.
I'm not sure - but isn't my libdrm_radeon.pc file looking OK?
I suspect it is OK as this exactly environment works OK with 10.1.4
Includes issue is solvable - show stopper for me is libvdpau_r600 linking issue
Comment 5 warpme 2014-05-30 21:03:49 UTC
On 30/05/14 15:38, bugzilla-daemon@freedesktop.org wrote:
>
> *Comment # 3 <https://bugs.freedesktop.org/show_bug.cgi?id=79230#c3> 
> on bug 79230 <https://bugs.freedesktop.org/show_bug.cgi?id=79230> from 
> Emil Velikov <mailto:emil.l.velikov@gmail.com> *
> (In reply tocomment #2  <show_bug.cgi?id=79230#c2>)
> > Createdattachment 100147  <attachment.cgi?id=100147>  [details]  <attachment.cgi?id=100147&action=edit>
> > fixing libdrm includes when cross-compile
>
> Strange, neither of these changes should be needed. When winsys/radeon/drm is
> build the RADEON_CFLAGS are used which should pick the correct include location
> from the libdrm-radeon package. Same logic applies to all other cases in the
> patch.
>
> Most likely your libdrm* packages are not installed correctly and/or pkgconfig
> is not finding the correct *.pc files. PKG_CONFIG_PATH can help in the latter
> case.
That was my suspect. But 2 things are worth to mention:
-exactly the same environment builds OK with 10.1.4
-I verified pkgconfig.pc for libdrm_radeon:

[piotro@myth-devel-vm pkgconfig]$ cat libdrm_radeon.pc
prefix=/home/piotro/minimyth-dev/images/build/usr
exec_prefix=/home/piotro/minimyth-dev/images/build/usr
libdir=/home/piotro/minimyth-dev/images/build/usr/lib
includedir=/home/piotro/minimyth-dev/images/build/usr/include

Name: libdrm_radeon
Description: Userspace interface to kernel DRM services for radeon
Version: 2.4.54
Libs: -L${libdir} -ldrm_radeon
Cflags: -I${includedir} -I${includedir}/libdrm



My configure options look following:

CONFIGURE_ARGS = $(DIRPATHS) --build=$(GARBUILD) --host=$(GARHOST) \
     --x-includes="$(DESTDIR)$(includedir)" \
     --x-libraries="$(DESTDIR)$(libdir)" \
     --disable-silent-rules \
     $(if $(filter i386  , $(GARCH_FAMILY)),--enable-32-bit) \
     $(if $(filter x86_64, $(GARCH_FAMILY)),--enable-64-bit) \
     --disable-static \
     --enable-shared \
     --disable-debug \
     --disable-mangling \
     --disable-texture-float \
     --enable-asm \
     --disable-selinux \
     --enable-opengl \
     --disable-gles1 \
     --disable-gles2 \
     --disable-openvg \
     --enable-dri \
     --enable-glx \
     --disable-osmesa \
     --disable-gallium-osmesa \
     --disable-egl \
     --enable-xa \
     --disable-gbm \
     --disable-xvmc \
     --enable-vdpau \
     --disable-opencl \
     --disable-opencl-icd \
     --disable-xlib-glx \
     --disable-gallium-egl \
     --disable-gallium-gbm \
     --disable-r600-llvm-compiler \
     --disable-gallium-tests \
     --disable-shared-glapi \
     --disable-dri3 \
     --enable-driglx-direct \
     --disable-glx-tls \
     --enable-gallium-llvm \
     --with-llvm-shared-libs \
     --with-gallium-drivers="i915,r300,r600,radeonsi,svga,swrast" \
     --with-dri-driverdir="$(libdir)/dri" \
     --with-dri-drivers="i915,i965,r200,radeon,swrast" \
     --with-vdpau-libdir="$(libdir)/vdpau" \
     PKG_CONFIG_PATH="$(libdir)/pkgconfig" \
     LIBVA_CFLAGS="$(DESTDIR)$(includedir)" \
     LIBVA_LIBS="$(DESTDIR)$(libdir)" \
     LIBUDEV_CFLAGS="$(DESTDIR)$(includedir)" \
     LIBUDEV_LIBS="$(DESTDIR)$(libdir)" \
     RADEON_CFLAGS="$(DESTDIR)$(includedir)/libdrm" \
     RADEON_LIBS="$(DESTDIR)$(libdir)"

When I remove
     RADEON_CFLAGS="$(DESTDIR)$(includedir)/libdrm" \
     RADEON_LIBS="$(DESTDIR)$(libdir)"

configure fails with:
------------------------
checking for INTEL... yes
checking for RADEON... no
configure: error: Package requirements (libdrm_radeon >= 2.4.54) were 
not met:

Requested 'libdrm_radeon >= 2.4.54' but version of libdrm_radeon is 2.4.52

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables RADEON_CFLAGS
and RADEON_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
------------------------


libdrm_radeon 2.4.52 is version on host system. Target system has 2.4.54 
- so it looks like there is indeed issue related to PKG_CONFIG & 
libdrm_radeon.
I'm not sure - but isn't my libdrm_radeon.pc file looking OK?
I suspect it is OK as this exactly environment works OK with 10.1.4
Includes issue is solvable - show stopper for me is libvdpau_r600 
linking issue :-(




>
> If that does not help can you bisect this issue ? Providing your configure
> options (including any additional variables that you've set) will help.
> ------------------------------------------------------------------------
> You are receiving this mail because:
>
>   * You reported the bug.
>
Comment 6 Emil Velikov 2014-05-30 21:30:55 UTC
A couple of distinct issues here (rather unrelated):

1: Missing gl* declarations as posted originally. Most likely a duplicate of bug 79294. Should be addressed with http://patchwork.freedesktop.org/patch/26907/

2: Complete bogus build setup :\

(In reply to comment #5)
> That was my suspect. But 2 things are worth to mention:
> -exactly the same environment builds OK with 10.1.4
> -I verified pkgconfig.pc for libdrm_radeon:
> 
Indeed mesa's build has been rather buggy and/or allowed many bad things to be done, although I've been trying to address this recently.

> My configure options look following:
> 
> CONFIGURE_ARGS = $(DIRPATHS) --build=$(GARBUILD) --host=$(GARHOST) \
>      --x-includes="$(DESTDIR)$(includedir)" \
>      --x-libraries="$(DESTDIR)$(libdir)" \
Those two have been used for a while. Drop them.

>      --disable-silent-rules \
>      $(if $(filter i386  , $(GARCH_FAMILY)),--enable-32-bit) \
>      $(if $(filter x86_64, $(GARCH_FAMILY)),--enable-64-bit) \
>      --disable-static \
>      --enable-shared \
>      --disable-debug \
>      --disable-mangling \
>      --disable-texture-float \
>      --enable-asm \
>      --disable-selinux \
>      --enable-opengl \
>      --disable-gles1 \
>      --disable-gles2 \
>      --disable-openvg \
>      --enable-dri \
>      --enable-glx \
>      --disable-osmesa \
>      --disable-gallium-osmesa \
>      --disable-egl \
>      --enable-xa \
>      --disable-gbm \
>      --disable-xvmc \
>      --enable-vdpau \
>      --disable-opencl \
>      --disable-opencl-icd \
>      --disable-xlib-glx \
>      --disable-gallium-egl \
>      --disable-gallium-gbm \
>      --disable-r600-llvm-compiler \
>      --disable-gallium-tests \
>      --disable-shared-glapi \
>      --disable-dri3 \
>      --enable-driglx-direct \
>      --disable-glx-tls \
>      --enable-gallium-llvm \
>      --with-llvm-shared-libs \
>      --with-gallium-drivers="i915,r300,r600,radeonsi,svga,swrast" \
>      --with-dri-driverdir="$(libdir)/dri" \
>      --with-dri-drivers="i915,i965,r200,radeon,swrast" \
>      --with-vdpau-libdir="$(libdir)/vdpau" \
>      PKG_CONFIG_PATH="$(libdir)/pkgconfig" \
Wrong. You should set the path to the location where the cross-build pc are available. I.e. the location where the above libdrm_radeon.pc is stored.

>      LIBVA_CFLAGS="$(DESTDIR)$(includedir)" \
>      LIBVA_LIBS="$(DESTDIR)$(libdir)" \
>      LIBUDEV_CFLAGS="$(DESTDIR)$(includedir)" \
>      LIBUDEV_LIBS="$(DESTDIR)$(libdir)" \
>      RADEON_CFLAGS="$(DESTDIR)$(includedir)/libdrm" \
>      RADEON_LIBS="$(DESTDIR)$(libdir)"
> 
Fix PKG_CONFIG_PATH and drop the above.

> Includes issue is solvable - show stopper for me is libvdpau_r600 
> linking issue :-(
> 
Should be resolved once PKG_CONFIG_PATH is fixed.
Comment 7 warpme 2014-06-02 09:06:46 UTC
Emil,

>>      PKG_CONFIG_PATH="$(libdir)/pkgconfig" \
>Wrong. You should set the path to the location where the cross-build pc are >available. I.e. the location where the above libdrm_radeon.pc is stored.

Argh. Silly me. This is typo. Corrected and now I'm able to compile. Patch for libdrm includes is still needed however - but this is minor thing.

Thx for Your help!
Comment 8 Emil Velikov 2014-06-12 18:03:18 UTC
(In reply to comment #7)
> Emil,
> 
> >>      PKG_CONFIG_PATH="$(libdir)/pkgconfig" \
> >Wrong. You should set the path to the location where the cross-build pc are >available. I.e. the location where the above libdrm_radeon.pc is stored.
> 
> Argh. Silly me. This is typo. Corrected and now I'm able to compile. Patch
> for libdrm includes is still needed however - but this is minor thing.
> 
> Thx for Your help!

As mentioned above the patch should not be needed if PKG_CONFIG_PATH is correctly set and you are installing the files in their recommended location/there are no hacks like these in your libdrm build.

Feel free to open if the original issue "error: no previous prototype for 'gl*'" persist. For everything else please file a different bugreport.

Thanks
Comment 9 warpme 2014-06-20 17:36:07 UTC
This ticket can be closed. 10.2.1 cross-compiles now OK without any patches. Thx!


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.