Closed Bug 1046468 Opened 10 years ago Closed 10 years ago

toolkit/library has an inter-dependency on ldap for comm-central that it needs to be told about in the moz.build world.

Categories

(Firefox Build System :: General, defect)

defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED
mozilla34

People

(Reporter: iannbugzilla, Assigned: iannbugzilla)

References

Details

Attachments

(2 files)

In the moz.build world if you try and build out of comm-central you get an error similar to:
    INPUT("StaticXULComponentsEnd/StaticXULComponentsEnd.o")

../../build/unix/gold/ld: error: cannot find -lldap60
../../build/unix/gold/ld: error: cannot find -lprldap60
../../build/unix/gold/ld: error: cannot find -lldif60
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[5]: *** [libxul.so] Error 1
make[5]: Leaving directory `/home/gizmo/central/c-c/obj-sm/mozilla/toolkit/library'
make[4]: *** [toolkit/library/target] Error 2

If you set:
TOPLEVEL_BUILD=1; export TOPLEVEL_BUILD
and run either:
make -C obj-sm/ldap/sdks/c-sdk/ libs
or:
make -C obj-sm/ldap/ libs
or:
make -C obj-sm/ldap/sdks/c-sdk/ export

then the relevant libraries get built

If you try and add the following to m-c's Makefile.in:
ifdef MOZ_LDAP_XPCOM
toolkit/library/export: ../ldap/sdks/c-sdk/ldap/export
endif

You get the message:
make recurse_export
make[4]: Entering directory `/home/gizmo/central/c-c/obj-sm/mozilla'
make[4]: *** No rule to make target `../ldap/sdks/c-sdk/export', needed by `toolkit/library/export'.  Stop.

I'm probably getting some obvious wrong.
I mentioned this on IRC, but:

Try using ldap/ instead of ldap/sdks/c-sdk/ldap. The former was added to bridge the fact that the SDK's build system is screwy.
Using in m-c's Makefile.in:
toolkit/library/target: ../ldap/target
gives:
make[4]: *** No rule to make target `../ldap/target', needed by `toolkit/library/target'.  Stop.

If I try update the ldap/Makefile.in to add target to export I get:
make[5]: Entering directory `/home/gizmo/central/c-c/obj-sm/ldap'
Makefile:17: *** recipe commences before first target.  Stop.
make[5]: Leaving directory `/home/gizmo/central/c-c/obj-sm/ldap'
make[4]: *** [../ldap/export] Error 2

Adding to the libs line gives:
make[4]: *** No rule to make target `../ldap/target', needed by `toolkit/library/target'.  Stop.
There is also a patch for ldap's moz.build and Makefile.in to complete the fix.
Assignee: nobody → iann_bugzilla
Status: NEW → ASSIGNED
Attachment #8465141 - Flags: review?(mh+mozilla)
I did try having target doing the same as export but the build system did not like the way recipe commenced.
Attachment #8465144 - Flags: review?(Pidgeot18)
Blocks: 1044460
Comment on attachment 8465144 [details] [diff] [review]
Changes to ldap's moz.build and Makefile.in [Checked in: Comment 7]

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

::: ldap/moz.build
@@ +2,5 @@
>  # This Source Code Form is subject to the terms of the Mozilla Public
>  # License, v. 2.0. If a copy of the MPL was not distributed with this
>  # file, You can obtain one at http://mozilla.org/MPL/2.0/.
>  
> +LIBRARY_NAME = 'ldapsdks'

Please add a note about why this is needed.
Attachment #8465144 - Flags: review?(Pidgeot18) → review+
Comment on attachment 8465144 [details] [diff] [review]
Changes to ldap's moz.build and Makefile.in [Checked in: Comment 7]

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

::: ldap/Makefile.in
@@ +13,5 @@
>  libs clean distclean::
>  	$(MAKE) -C $(DEPTH)/ldap/sdks/c-sdk $@
>  
> +target::
> +	$(MAKE) -C $(DEPTH)/ldap/sdks/c-sdk export

export, not libs?
Attachment #8465141 - Flags: review?(mh+mozilla) → review+
Comment on attachment 8465144 [details] [diff] [review]
Changes to ldap's moz.build and Makefile.in [Checked in: Comment 7]

https://hg.mozilla.org/comm-central/rev/400d3f9380fb
Attachment #8465144 - Attachment description: Changes to ldap's moz.build and Makefile.in → Changes to ldap's moz.build and Makefile.in [Checked in: Comment 7]
Comment on attachment 8465141 [details] [diff] [review]
m-c's Makefile.in change to add ldap dependency for toolkit/library [Checked in m-i: Comment 8]

https://hg.mozilla.org/integration/mozilla-inbound/rev/47bba71f4c66
Attachment #8465141 - Attachment description: m-c's Makefile.in change to add ldap dependency for toolkit/library → m-c's Makefile.in change to add ldap dependency for toolkit/library [Checked in m-i: Comment 8]
Attachment #8465141 - Flags: checkin+
https://hg.mozilla.org/mozilla-central/rev/47bba71f4c66
Status: ASSIGNED → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla34
QA Whiteboard: [qa-]
Product: Core → Firefox Build System
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: