The default bug view has changed. See this FAQ.

expand-libs doesn't put .i_o object files from Linux PGO first pass in a list

RESOLVED FIXED in mozilla12

Status

()

Core
Build Config
RESOLVED FIXED
5 years ago
5 years ago

People

(Reporter: glandium, Assigned: glandium)

Tracking

(Blocks: 1 bug)

Trunk
mozilla12
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(1 attachment, 2 obsolete attachments)

(Assignee)

Description

5 years ago
This leads to a failure to build with skia in bug 702158
(Assignee)

Comment 1

5 years ago
Created attachment 590158 [details] [diff] [review]
Override OBJ_SUFFIX used in expandlibs on Linux PGO first pass

Kato-san, can you try this patch?
build failed on js shell.  Do you need for --verbose?


https://tbpl.mozilla.org/?tree=Try&rev=4b1c3357254b

/tools/python/bin/python2.5 /builds/slave/try-lnx/build/js/src/config/pythonpath.py -I../config /builds/slave/try-lnx/build/js/src/config/expandlibs_exec.py --uselist --  /usr/bin/ccache /tools/gcc-4.5-0moz3/bin/g++ -o js  -fno-rtti -pedantic -Wall -Wpointer-arith -Woverloaded-virtual -Wsynth -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor -Wcast-align -Wno-invalid-offsetof -Wno-variadic-macros -Werror=return-type -Wno-long-long -pthread -pipe  -DNDEBUG -DTRIMMED -g -fprofile-generate -O3 -fomit-frame-pointer js.i_o jsworkers.i_o jsoptparse.i_o jsheaptools.i_o   -lpthread    -fprofile-generate -Wl,-rpath-link,../../../dist/bin -Wl,-rpath-link,/builds/slave/try-lnx/build/obj-firefox/dist/lib   -Wl,--whole-archive ../../../dist/lib/libmozglue.a -Wl,--no-whole-archive -rdynamic -L../../../dist/bin -L../../../dist/lib -L/builds/slave/try-lnx/build/obj-firefox/dist/lib -lplds4 -lplc4 -lnspr4 -lpthread -ldl ../editline/libeditline.a ../libjs_static.a -ldl    
../libjs_static.a(CTypes.i_o): In function `~ClosureInfo':
/builds/slave/try-lnx/build/js/src/ctypes/CTypes.h:348: undefined reference to `ffi_closure_free'
../libjs_static.a(CTypes.i_o): In function `js::ctypes::PointerType::CreateInternal(JSContext*, JSObject*)':
/builds/slave/try-lnx/build/js/src/ctypes/CTypes.cpp:3305: undefined reference to `ffi_type_pointer'
../libjs_static.a(CTypes.i_o): In function `js::ctypes::InitTypeClasses(JSContext*, JSObject*)':
/builds/slave/try-lnx/build/js/src/ctypes/typedefs.h:104: undefined reference to `ffi_type_uint8'
/builds/slave/try-lnx/build/js/src/ctypes/typedefs.h:105: undefined reference to `ffi_type_sint8'
/builds/slave/try-lnx/build/js/src/ctypes/typedefs.h:106: undefined reference to `ffi_type_sint16'
/builds/slave/try-lnx/build/js/src/ctypes/typedefs.h:107: undefined reference to `ffi_type_sint32'
/builds/slave/try-lnx/build/js/src/ctypes/typedefs.h:108: undefined reference to `ffi_type_uint8'
/builds/slave/try-lnx/build/js/src/ctypes/typedefs.h:109: undefined reference to `ffi_type_uint16'
/builds/slave/try-lnx/build/js/src/ctypes/typedefs.h:110: undefined reference to `ffi_type_uint32'
/builds/slave/try-lnx/build/js/src/ctypes/typedefs.h:111: undefined reference to `ffi_type_sint16'
/builds/slave/try-lnx/build/js/src/ctypes/typedefs.h:112: undefined reference to `ffi_type_uint16'
/builds/slave/try-lnx/build/js/src/ctypes/typedefs.h:113: undefined reference to `ffi_type_sint32'
/builds/slave/try-lnx/build/js/src/ctypes/typedefs.h:114: undefined reference to `ffi_type_uint32'
/builds/slave/try-lnx/build/js/src/ctypes/typedefs.h:115: undefined reference to `ffi_type_sint64'
/builds/slave/try-lnx/build/js/src/ctypes/typedefs.h:116: undefined reference to `ffi_type_uint64'
/builds/slave/try-lnx/build/js/src/ctypes/typedefs.h:117: undefined reference to `ffi_type_sint32'
/builds/slave/try-lnx/build/js/src/ctypes/typedefs.h:118: undefined reference to `ffi_type_uint32'
/builds/slave/try-lnx/build/js/src/ctypes/typedefs.h:119: undefined reference to `ffi_type_sint64'
/builds/slave/try-lnx/build/js/src/ctypes/typedefs.h:120: undefined reference to `ffi_type_uint64'
/builds/slave/try-lnx/build/js/src/ctypes/typedefs.h:121: undefined reference to `ffi_type_uint32'
/builds/slave/try-lnx/build/js/src/ctypes/typedefs.h:122: undefined reference to `ffi_type_sint32'
/builds/slave/try-lnx/build/js/src/ctypes/typedefs.h:123: undefined reference to `ffi_type_sint32'
/builds/slave/try-lnx/build/js/src/ctypes/typedefs.h:124: undefined reference to `ffi_type_uint32'
/builds/slave/try-lnx/build/js/src/ctypes/typedefs.h:125: undefined reference to `ffi_type_float'
/builds/slave/try-lnx/build/js/src/ctypes/typedefs.h:126: undefined reference to `ffi_type_double'
/builds/slave/try-lnx/build/js/src/ctypes/typedefs.h:127: undefined reference to `ffi_type_float'
/builds/slave/try-lnx/build/js/src/ctypes/typedefs.h:128: undefined reference to `ffi_type_double'
/builds/slave/try-lnx/build/js/src/ctypes/typedefs.h:129: undefined reference to `ffi_type_uint8'
/builds/slave/try-lnx/build/js/src/ctypes/typedefs.h:130: undefined reference to `ffi_type_sint8'
/builds/slave/try-lnx/build/js/src/ctypes/typedefs.h:131: undefined reference to `ffi_type_uint8'
/builds/slave/try-lnx/build/js/src/ctypes/typedefs.h:132: undefined reference to `ffi_type_uint16'
../libjs_static.a(CTypes.i_o): In function `js::ctypes::InitTypeClasses(JSContext*, JSObject*)':
/builds/slave/try-lnx/build/js/src/ctypes/CTypes.cpp:924: undefined reference to `ffi_type_void'
../libjs_static.a(CTypes.i_o): In function `js::ctypes::StructType::BuildFFIType(JSContext*, JSObject*)':
/builds/slave/try-lnx/build/js/src/ctypes/CTypes.cpp:4315: undefined reference to `ffi_type_uint8'
../libjs_static.a(CTypes.i_o): In function `js::ctypes::PrepareCIF(JSContext*, js::ctypes::FunctionInfo*)':
/builds/slave/try-lnx/build/js/src/ctypes/CTypes.cpp:4803: undefined reference to `ffi_prep_cif'
../libjs_static.a(CTypes.i_o): In function `~ClosureInfo':
/builds/slave/try-lnx/build/js/src/ctypes/CTypes.h:348: undefined reference to `ffi_closure_free'
../libjs_static.a(CTypes.i_o): In function `js::ctypes::CClosure::Create(JSContext*, JSObject*, JSObject*, JSObject*, JS::Value, void (**)())':
/builds/slave/try-lnx/build/js/src/ctypes/CTypes.cpp:5434: undefined reference to `ffi_closure_alloc'
/builds/slave/try-lnx/build/js/src/ctypes/CTypes.cpp:5441: undefined reference to `ffi_prep_closure_loc'
../libjs_static.a(CTypes.i_o): In function `js::ctypes::CClosure::ClosureStub(ffi_cif*, void*, void**, void*)':
/builds/slave/try-lnx/build/js/src/ctypes/CTypes.cpp:5531: undefined reference to `ffi_type_void'
/builds/slave/try-lnx/build/js/src/ctypes/CTypes.cpp:5579: undefined reference to `ffi_type_void'
../libjs_static.a(CTypes.i_o): In function `js::ctypes::FunctionType::Call(JSContext*, unsigned int, JS::Value*)':
/builds/slave/try-lnx/build/js/src/ctypes/CTypes.cpp:5211: undefined reference to `ffi_call'
../libjs_static.a(CTypes.i_o): In function `~ClosureInfo':
/builds/slave/try-lnx/build/js/src/ctypes/CTypes.h:348: undefined reference to `ffi_closure_free'
collect2: ld returned 1 exit status
(Assignee)

Comment 3

5 years ago
Created attachment 590244 [details] [diff] [review]
Make expandlibs properly handle the case where OBJ_SUFFIX is .i_o on Linux PGO first pass

This one should work better
(Assignee)

Updated

5 years ago
Attachment #590158 - Attachment is obsolete: true
Makoto, did you send the patches to try? If you're busy I can do it.
build is success, but unfortunately test seems to be failed.

https://tbpl.mozilla.org/php/getParsedLog.php?id=8747589&tree=Try&full=1

TEST-UNEXPECTED-FAIL | /builds/slave/try-lnx64/build/config/tests/unit-expandlibs.py | line 103, _method: ['tmpIQahbi/b.o', 'tmpIQahbi/c.o'] != ['tmpIQahbi/libd.a', 'tmpIQahbi/libf.so']
TEST-UNEXPECTED-FAIL | /builds/slave/try-lnx64/build/config/tests/unit-expandlibs.py | line 103, _method: ['tmpz273wo/b.obj', 'tmpz273wo/c.obj'] != ['tmpz273wo/d.lib', 'tmpz273wo/f.lib']
(Assignee)

Comment 6

5 years ago
Created attachment 590656 [details] [diff] [review]
Make expandlibs properly handle the case where OBJ_SUFFIX is .i_o on Linux PGO first pass

Same as the previous one, but with a fix for the test failure (which was an error in the reorder change, and reorder is not (yet) involved when building, so the try build result is still relevant)
Attachment #590656 - Flags: review?(ted.mielczarek)
(Assignee)

Updated

5 years ago
Attachment #590244 - Attachment is obsolete: true
Comment on attachment 590656 [details] [diff] [review]
Make expandlibs properly handle the case where OBJ_SUFFIX is .i_o on Linux PGO first pass

Review of attachment 590656 [details] [diff] [review]:
-----------------------------------------------------------------

::: config/expandlibs.py
@@ +88,5 @@
>  
> +def isObject(path):
> +    '''Returns whether the given path points to an object file, that is,
> +    ends with OBJ_SUFFIX or .i_o'''
> +    return os.path.splitext(path)[1] in [conf.OBJ_SUFFIX, '.i_o']

It's a little weird that this is hardcoded here, but I guess it's hardcoded in config.mk too.
Attachment #590656 - Flags: review?(ted.mielczarek) → review+
(Assignee)

Updated

5 years ago
Assignee: nobody → mh+mozilla
(Assignee)

Comment 8

5 years ago
https://hg.mozilla.org/integration/mozilla-inbound/rev/747d47aadb59
Whiteboard: [inbound]
https://hg.mozilla.org/mozilla-central/rev/747d47aadb59
Status: NEW → RESOLVED
Last Resolved: 5 years ago
Resolution: --- → FIXED
Whiteboard: [inbound]
Target Milestone: --- → mozilla12

Updated

5 years ago
Blocks: 702179
You need to log in before you can comment on or make changes to this bug.