Closed Bug 204177 Opened 22 years ago Closed 21 years ago

fix IPC ports bustage

Categories

(Core :: IPC, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: jonwil, Assigned: darin.moz)

References

Details

Attachments

(6 files, 1 obsolete file)

I tried to build the new IPC code, it didnt build. It built lockmodule.dll but it then asked for liblockmodule.dll.
BTW, if this isnt going to be fixed anytime soon, someone should modify the win32 build instructions to tell MingW builders to build with --disable-profilesharing
Blocks: mingw
make[1]: *** No rule to make target `liblockmodule.dll', needed by `libs'. Stop. make: *** [all] Error 2 Thats the error I got. Looks like some build rule on MingW is causing one bit of the system to build a lockmodule.dll then another bit to ask for liblocmodule.dll
note that this particular Makefile is breaking the static builds, too.
looks like the same error that linux balsa dep (ports) is showing. a bunch of other bustage on ports too.
Summary: make IPC build on MingW builds → fix IPC ports bustage
Looking at it...
> make[1]: *** No rule to make target `liblockmodule.dll', needed by `libs'. Since this is killing both static builds, is it possible that the expected lib*.dll is not being produced because it's a static build? Instead, only a static lib?
From ipc/extensions/lock/src/module/Makefile.in: IS_COMPONENT = 1 NO_DIST_INSTALL = 1 I think IS_COMPONENT is having bad side-affects with the static build. This makefile is building a component that the ipc code loads - but it's not a component as far as the rest of the build is concerned. It was needed at some point for OS X in order to get the linker args which you get with IS_COMPONENT. Doing a Mac static build right now to test this.
.
Assignee: mozbugs-build → ccarlen
Component: Build Config → Profile Manager BackEnd
QA Contact: granrose → gbush
ipc/extensions/lock/src/module/Makefile.in probably shouldn't have IS_COMPONENT=1 in it. the code in there is a daemon module. currently, even in static mozilla builds, the daemon code should continue to build dynamically loaded modules. i'm guessing that IS_COMPONENT=1 just crept in there by accident.
Darin, see comment 7 - IS_COMPONENT was needed. In order to get it to build a shared lib, even in a static build, it needs FORCE_SHARED_LIB. That will require FORCE_USE_PIC here and there...
r=, somebody? Fixes my Mach-O static build, trying others now...
Comment on attachment 122322 [details] [diff] [review] patch to fix static build bustage sr=darin
Attachment #122322 - Flags: superreview+
Checked in. That should fix balsa and worms. nebiros is hopefully fixed. That leaves IRIX and OS/2.
Comment on attachment 122348 [details] [diff] [review] wishful patch for irix bustage got a verbal sr=dbaron on this patch, and checked in. let's see if it does the trick.
Camino Tinderbox gives: make[3]: *** No rule to make target `../../dist/lib/liblockmodule.a', needed by `mozilla-bin'. Stop. Looks like anything which uses EXPORT_LIBRARY = 1 causes it to end up in config/final-link-libs. But, since FORCE_SHARED_LIB was used, it doesn't exist. The question is: does EXPORT_LIBRARY need to be removed from all the makefiles in ipc/ipcd? Or, as long as static libs exist, they'll just be dead-stripped by the linker during staticmod link?
Comment on attachment 122353 [details] [diff] [review] another patch to fix static build bustage sr=darin
Attachment #122353 - Flags: superreview+
MingW is still broken. Looking at the makefile.in for the directory in question, it looks like the problem on MingW is that it uses $(LIB_PREFIX) instead of $(DLL_PREFIX) in the _IPC_FILES defintion. On Visual C++ this doesnt matter because $(LIB_PREFIX) and $(DLL_PREFIX) are the same. But for MingW, this is whats causing the error I think.
With this, the full build finally links.
This should fix the MingW bustage caused by usage of $(LIB_PREFIX) instead of $(DLL_PREFIX). Dont know if there is a logical reason to use $(LIB_PREFIX) with $(DLL_SUFFIX) or if it was a mistake but it breaks MingW :)
Attachment #122370 - Flags: review?(cls)
Attachment #122370 - Flags: review?(cls)
Comment on attachment 122370 [details] [diff] [review] patch for the mingw bustage This looks like the correct fix to me. sr=dmose@mozilla.org
Attachment #122370 - Flags: superreview+
OS/2 bustage is at least a problem of XP_WIN != !XP_UNIX in ipcTransport.* Not sure what OS/2 really needs to do, of course.
*** Bug 204298 has been marked as a duplicate of this bug. ***
Attachment #122370 - Flags: review?(bryner)
Comment on attachment 122476 [details] [diff] [review] fix checking out standalone modules ipc needs to copy all code in client.mk, not just the fun bits, cls, mind reviewing this?
Attachment #122476 - Flags: review?(cls)
Attachment #122476 - Flags: review?(cls)
Comment on attachment 122476 [details] [diff] [review] fix checking out standalone modules cls suggested that I try to get bryner to review this fixup in client.mk
Attachment #122476 - Flags: review?(bryner)
Attachment #122370 - Flags: review?(darin)
Attachment #122370 - Flags: review?(bryner)
Attachment #122370 - Flags: approval1.4b?
Attachment #122370 - Flags: approval1.4?
Component: Profile Manager BackEnd → IPC
QA Contact: gbush → carosendahl
Comment on attachment 122370 [details] [diff] [review] patch for the mingw bustage r=darin
Attachment #122370 - Flags: review?(darin) → review+
Comment on attachment 122370 [details] [diff] [review] patch for the mingw bustage a=asa (on behalf of drivers) for checkin to 1.4.
Attachment #122370 - Flags: approval1.4b?
Attachment #122370 - Flags: approval1.4?
Attachment #122370 - Flags: approval1.4+
Attachment #122476 - Flags: review?(bryner) → review+
Comment on attachment 122476 [details] [diff] [review] fix checking out standalone modules this patch fixes that xpcom standalone and other standalone builds like transformiix pull ipc. requesting 1.4 approval
Attachment #122476 - Flags: approval1.4?
Comment on attachment 122476 [details] [diff] [review] fix checking out standalone modules a=sspitzer
Attachment #122476 - Flags: approval1.4? → approval1.4+
Comment on attachment 122476 [details] [diff] [review] fix checking out standalone modules this patch is in. thanx.
Attachment #122476 - Attachment is obsolete: true
so can this bug be closed now?
I don't think the MinGW patch has been checked in yet. I'll try and do that in the next few days, unless someone else gets to it first.
MinGW gcc patch has been checked in.
I made changes to get BeOS building. I believe that when IPC landed people assured me that it would not be enabled for places where it wouldn't work. The world is not just win or unix. You can't assume that !win is always the same as unix or vice versa, whatever conditions you choose in once file should be used for the same codepath in other files.
Severity: normal → blocker
OS: Windows XP → All
Hardware: PC → All
It's a bit overboard to change the status/platform to blocker/All if it's building everywhere except BeOS and OS/2. The problem now is that it should not be nescesary to use --disable-profilesharing in order to build. We need some logic in configure.in which turns that off for any platforms on which it doesn't build. AFAIK, that's BeOS, OS/2, and VMS. I could use some pointers on configure.in, but, would something like this do it? MOZ_PROFILESHARING=1 case "$target" in *-beos*) MOZ_PROFILESHARING= ;; *-openvms*) MOZ_PROFILESHARING= ;; *-os2*) MOZ_PROFILESHARING= ;; esec
Just some terminology from the page which describes those terms: Blocker Blocks development and/or testing work All (...; cross-platform bug) My default BeOS build failed. That blocked my development work <period> It happens on more than just Windows XP and OS/2 => All As for configure, how about making it opt in instead of opt out? set it to 1 for unix and windows, when other platforms implement it, let them add a line which sets it to 1 for their platform.
timeless: BeOS, VMS, and OS2 are not officially supported by mozilla.org (they are ports). we try not to bust the ports, but we try even harder not to bust the primary platforms. it simply can't be the job of every developer to maintain the ports. we can all try, but it can't be our first priority. blocker status seems misused if only the ports are busted. moreover, your development is not hindered... you can add --disable-profilesharing to your mozconfig. so, why don't you help out with the patch (since you are capable of testing on BeOS) instead of fussing over the status of this bug? conrad: your approach looks right to me.
Severity: blocker → normal
Attachment #123378 - Flags: review?(bryner)
While we're listing os's that don't do domain sockets: QNX6.0/6.1 Please add that to your list :)
Comment on attachment 123378 [details] [diff] [review] patch to disable profilesharing on os2, openvms, and beos If you're going to do it this way, please indent the block under the *) appropriately. Personally, I'd do it a bit differently... after the MOZ_ARG_DISABLE_BOOL() I'd put: case $target in *-os2*|*-openvms*|*-beos*) MOZ_PROFILESHARING= ;; esac Also, please add qnx (I'm not sure what the target string is for that offhand) as timeless mentioned. r=bryner with those addressed.
Attachment #123378 - Flags: review?(bryner) → review+
Comment on attachment 123378 [details] [diff] [review] patch to disable profilesharing on os2, openvms, and beos please remove beos from this list. currently, even though it doesn't work, the ipc code does not stop the beos build from completing. Plus, I almost have a native beos implementation completed, and don't want to have to patch this file again.
What if anything still needs to be done for this bug? The ports all seem to be fine now. Does that mean we can mark this as fixed? (taking bug)
Assignee: ccarlen → darin
i have no idea what the status on qnx is, my guess is it's still hosed. my computers should arrive next week, so maybe i'll get root and try qnx w/ this flag. as for beos, afaik it still doesn't have an impl, so anything that forcefully uses this stuff will fail miserably (at runtime).
Well, the summary suggests that some ports build doesn't compile on account of code in ipc/ipcd. I believe that is no longer the case or else someone would have raised a red flag by now. I understand that the IPCD code may not be functional on some platforms, but that doesn't really meet the definition of "bustage" especially since the IPCD code is currently unused. It sounds to me like the task of implementing IPCD for the various ports where it is not implemented would be better handled by separate bugs for each port. If anyone knows of a build that is busted on the trunk because of code under ipc/ipcd, please speak up. Otherwise, I think we can close this bug.
(In reply to comment #47) > If anyone knows of a build that is busted on the trunk because of code under > ipc/ipcd, please speak up. Otherwise, I think we can close this bug. Resolving, please reopen as needed.
Status: NEW → RESOLVED
Closed: 21 years ago
Resolution: --- → FIXED
QA Contact: carosendahl → ipc
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: