Opened 6 years ago

Closed 6 years ago

#57387 closed defect (fixed)

watchman 4.9.0_0 darwin_18.x86_64: bser.cpp:345:17: error: offset of on non-standard-layout type 'json_object_t'

Reported by: Splaktar (Michael Prentice) Owned by: seanfarley (Sean Farley)
Priority: Normal Milestone:
Component: ports Version: 2.5.4
Keywords: mojave Cc:
Port: watchman

Description (last modified by kencu (Ken))

  • macOS: 10.14 (18A391)
  • xcode: 10.0 (10A255)
571	:info:build /usr/bin/clang++ -std=c++11 -DHAVE_CONFIG_H -I.  -I./thirdparty/jansson -I./thirdparty/jansson -Werror -I/opt/local/include -isysroot/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk -D_REENTRANT -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -I/opt/local/include  -pipe -Os -stdlib=libc++ -isysroot/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk -arch x86_64 -Wall -Wextra -g -gdwarf-2 -fno-omit-frame-pointer -MT watchman-opendir.o -MD -MP -MF .deps/watchman-opendir.Tpo -c -o watchman-opendir.o `test -f 'opendir.cpp' || echo './'`opendir.cpp
572	:info:build bser.cpp:345:17: error: offset of on non-standard-layout type 'json_object_t' [-Werror,-Winvalid-offsetof]
573	:info:build   auto object = json_to_object(obj);
574	:info:build                 ^~~~~~~~~~~~~~~~~~~
575	:info:build ./thirdparty/jansson/jansson_private.h:71:32: note: expanded from macro 'json_to_object'
576	:info:build #define json_to_object(json_)  container_of((json_t*)json_, json_object_t, json)
577	:info:build                                ^                                           ~~~~
578	:info:build ./thirdparty/jansson/jansson_private.h:19:31: note: expanded from macro 'container_of'
579	:info:build     ((type_ *)((char *)ptr_ - offsetof(type_, member_)))
580	:info:build                               ^               ~~~~~~~
581	:info:build /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/10.0.0/include/stddef.h:120:24: note: expanded from macro 'offsetof'
582	:info:build #define offsetof(t, d) __builtin_offsetof(t, d)
583	:info:build                        ^                     ~
584	:info:build 1 error generated.

Attachments (1)

main.log (58.4 KB) - added by Splaktar (Michael Prentice) 6 years ago.
build log: main.log

Download all attachments as: .zip

Change History (5)

Changed 6 years ago by Splaktar (Michael Prentice)

Attachment: main.log added

build log: main.log

comment:1 Changed 6 years ago by kencu (Ken)

Cc: seanfarley removed
Description: modified (diff)
Keywords: mojave added
Owner: set to seanfarley
Status: newassigned
Summary: watchman 4.9.0_0 darwin_18.x86_64: Failed to build watchman: command execution failedwatchman 4.9.0_0 darwin_18.x86_64: bser.cpp:345:17: error: offset of on non-standard-layout type 'json_object_t'

comment:2 Changed 6 years ago by kencu (Ken)

This is labelled as being fixed in master <https://github.com/facebook/watchman/issues/651>, and it looks like this commit <https://github.com/facebook/watchman/commit/28a70a81e70ea5919938958ce48112eafe24154c> fixed it. We could try backporting that commit as a patch, or waiting for some upcoming update to be released...

There is a mention in that commit that the issue only affected the autoconf builds, which opens the door to considering the cmake build instead, which apparently succeeds.

Last edited 6 years ago by kencu (Ken) (previous) (diff)

comment:4 Changed 6 years ago by ken-cunningham-webuse

Resolution: fixed
Status: assignedclosed

In a6b5bbadf26aaa1c1a16390d947bcd5ab2a7f551/macports-ports (master):

watchman: fix build on mojave

closes: #57387
backport patch from master to fix error on mojave

Also, take care of the following issues:

remove unused patchfile
add test support to Portfile
requires c++11 1.1 PG
add size to checksums
bump revision

Note: See TracTickets for help on using tickets.