Re: svn commit: r339898 - head/lib/libc/amd64/sys

2018-11-01 Thread Charlie Li
On 01/11/2018 12:04, Brooks Davis wrote:
> Is this failure with devel/llvm70?  It's currently missing the patch
> required to make this work.  https://reviews.freebsd.org/D17709 contains
> this patch among others.  I'll see about getting it applied.
> 
Yes, devel/llvm70. Will build with your port commit at my next opportunity.

-- 
Charlie Li
Can't think of a witty .sigline today…

(This email address is for mailing list use only; replace local-part
with vishwin for off-list communication)



signature.asc
Description: OpenPGP digital signature


[Bug 230857] loading carp module panic i386 kernel (VIMAGE related)

2018-11-01 Thread bugzilla-noreply
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=230857

--- Comment #9 from commit-h...@freebsd.org ---
A commit references this bug:

Author: bz
Date: Thu Nov  1 17:26:18 UTC 2018
New revision: 340009
URL: https://svnweb.freebsd.org/changeset/base/340009

Log:
  carpstats are the last virtualised variable in the file and end up at the
  end of the vnet_set.  The generated code uses an absolute relocation at
  one byte beyond the end of the carpstats array.  This means the relocation
  for the vnet does not happen for carpstats initialisation and as a result
  the kernel panics on module load.

  This problem has only been observed with carp and only on i386.
  We considered various possible solutions including using linker scripts
  to add padding to all kernel modules for pcpu and vnet sections.

  While the symbols (by chance) stay in the order of appearance in the file
  adding an unused non-file-local variable at the end of the file will extend
  the size of set_vnet and hence make the absolute relocation for carpstats
  work (think of this as a single-module set_vnet padding).

  This is a (tmporary) hack.  It is the least intrusive one as we need a
  timely solution for the upcoming release.  We will revisit the problem in
  HEAD.  For a lot more information and the possible alternate solutions
  please see the PR and the references therein.

  PR:   230857
  MFC after:3 days

Changes:
  head/sys/netinet/ip_carp.c

-- 
You are receiving this mail because:
You are on the CC list for the bug.
___
freebsd-toolchain@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-toolchain
To unsubscribe, send any mail to "freebsd-toolchain-unsubscr...@freebsd.org"


Re: svn commit: r339898 - head/lib/libc/amd64/sys

2018-11-01 Thread Brooks Davis
On Thu, Nov 01, 2018 at 08:57:24AM -0400, Charlie Li wrote:
> On 29/10/2018 20:11, Konstantin Belousov wrote:
> > Author: kib
> > Date: Tue Oct 30 00:11:30 2018
> > New Revision: 339898
> > URL: https://svnweb.freebsd.org/changeset/base/339898
> > 
> > Log:
> >   Convert amd64_get/set_fs/gsbase to ifunc.
> >   
> >   Note that this is the first use of ifuncs in our userspace.
> >   
> >   Sponsored by: The FreeBSD Foundation
> >   MFC after:1 month
> > 
> > Deleted:
> >   head/lib/libc/amd64/sys/amd64_detect_rdfsgsbase.c
> >   head/lib/libc/amd64/sys/amd64_detect_rdfsgsbase.h
> > Modified:
> >   head/lib/libc/amd64/sys/Makefile.inc
> >   head/lib/libc/amd64/sys/amd64_get_fsbase.c
> >   head/lib/libc/amd64/sys/amd64_get_gsbase.c
> >   head/lib/libc/amd64/sys/amd64_set_fsbase.c
> >   head/lib/libc/amd64/sys/amd64_set_gsbase.c
> > 
> Using LLVM 7 to build world, fails:
> 
> --- amd64_get_fsbase.o ---
> /usr/src/lib/libc/amd64/sys/amd64_get_fsbase.c:60:1: error: ifunc
> resolver function must have no parameters
> --- amd64_get_gsbase.o ---
> /usr/src/lib/libc/amd64/sys/amd64_get_gsbase.c:60:1: error: ifunc
> resolver function must have no parameters
> DEFINE_UIFUNC(, int, amd64_get_gsbase, (void **), static)
> ^
> /usr/local/obj/usr/src/amd64.amd64/tmp/usr/include/x86/ifunc.h:43:44:
> note: expanded from macro 'DEFINE_UIFUNC'
> --- amd64_get_fsbase.o ---
> DEFINE_UIFUNC(, int, amd64_get_fsbase, (void **), static)
> ^
> /usr/local/obj/usr/src/amd64.amd64/tmp/usr/include/x86/ifunc.h:43:44:
> note: expanded from macro 'DEFINE_UIFUNC'
> --- amd64_get_gsbase.o ---
> qual ret_type name args __attribute__((ifunc(#name "_resolver")));  \
>^
> --- amd64_get_fsbase.o ---
> qual ret_type name args __attribute__((ifunc(#name "_resolver")));  \
>^
> 1 error generated.
> --- amd64_get_gsbase.o ---
> 1 error generated.
> *** [amd64_get_gsbase.o] Error code 1
> 
> make[4]: stopped in /usr/src/lib/libc
> 
> CI appears green after this commit, so I'm inclined to pin this on yet
> another instance of LLVM 7 being stricter than LLVM 6. Backing out this
> revision allows the build to continue (successfully).

Is this failure with devel/llvm70?  It's currently missing the patch
required to make this work.  https://reviews.freebsd.org/D17709 contains
this patch among others.  I'll see about getting it applied.

-- Brooks


signature.asc
Description: PGP signature


Re: svn commit: r339898 - head/lib/libc/amd64/sys

2018-11-01 Thread Charlie Li
On 29/10/2018 20:11, Konstantin Belousov wrote:
> Author: kib
> Date: Tue Oct 30 00:11:30 2018
> New Revision: 339898
> URL: https://svnweb.freebsd.org/changeset/base/339898
> 
> Log:
>   Convert amd64_get/set_fs/gsbase to ifunc.
>   
>   Note that this is the first use of ifuncs in our userspace.
>   
>   Sponsored by:   The FreeBSD Foundation
>   MFC after:  1 month
> 
> Deleted:
>   head/lib/libc/amd64/sys/amd64_detect_rdfsgsbase.c
>   head/lib/libc/amd64/sys/amd64_detect_rdfsgsbase.h
> Modified:
>   head/lib/libc/amd64/sys/Makefile.inc
>   head/lib/libc/amd64/sys/amd64_get_fsbase.c
>   head/lib/libc/amd64/sys/amd64_get_gsbase.c
>   head/lib/libc/amd64/sys/amd64_set_fsbase.c
>   head/lib/libc/amd64/sys/amd64_set_gsbase.c
> 
Using LLVM 7 to build world, fails:

--- amd64_get_fsbase.o ---
/usr/src/lib/libc/amd64/sys/amd64_get_fsbase.c:60:1: error: ifunc
resolver function must have no parameters
--- amd64_get_gsbase.o ---
/usr/src/lib/libc/amd64/sys/amd64_get_gsbase.c:60:1: error: ifunc
resolver function must have no parameters
DEFINE_UIFUNC(, int, amd64_get_gsbase, (void **), static)
^
/usr/local/obj/usr/src/amd64.amd64/tmp/usr/include/x86/ifunc.h:43:44:
note: expanded from macro 'DEFINE_UIFUNC'
--- amd64_get_fsbase.o ---
DEFINE_UIFUNC(, int, amd64_get_fsbase, (void **), static)
^
/usr/local/obj/usr/src/amd64.amd64/tmp/usr/include/x86/ifunc.h:43:44:
note: expanded from macro 'DEFINE_UIFUNC'
--- amd64_get_gsbase.o ---
qual ret_type name args __attribute__((ifunc(#name "_resolver")));  \
   ^
--- amd64_get_fsbase.o ---
qual ret_type name args __attribute__((ifunc(#name "_resolver")));  \
   ^
1 error generated.
--- amd64_get_gsbase.o ---
1 error generated.
*** [amd64_get_gsbase.o] Error code 1

make[4]: stopped in /usr/src/lib/libc

CI appears green after this commit, so I'm inclined to pin this on yet
another instance of LLVM 7 being stricter than LLVM 6. Backing out this
revision allows the build to continue (successfully).

-- 
Charlie Li
Can't think of a witty .sigline today…

(This email address is for mailing list use only; replace local-part
with vishwin for off-list communication)



signature.asc
Description: OpenPGP digital signature